home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / system / tlb_v251.zip / LASTBYTE.DOC < prev    next >
Text File  |  1994-09-14  |  112KB  |  2,943 lines

  1.  
  2.  
  3.         
  4.  
  5.  
  6.                         THE LAST BYTE MEMORY MANAGER (tm)
  7.  
  8.                        An Upper Memory Manager for MS-DOS
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Version 2.51
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                               Copyright (C) 1990-94
  31.                                All Rights Reserved
  32.  
  33.  
  34.                                        by
  35.  
  36.  
  37.                               KEY SOFTWARE PRODUCTS
  38.  
  39.                                 440 Ninth Avenue
  40.                         Menlo Park, California 94025-1802
  41.                                   415-364-9847
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.         The Last Byte Memory Manager is a trademark of Key Software Products.
  53.          MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
  54.              DR-DOS is a trademark of Digital Research Incorporated.
  55.                       4DOS is a trademark of J.P. Software.
  56.                      Hyperdisk is a trademark of HyperWare.
  57.  
  58.  
  59.  
  60.         
  61.  
  62.  
  63.                                 TABLE OF CONTENTS
  64.  
  65.  
  66.  
  67.         CHAPTER 1 - INTRODUCTION        ...........................    1
  68.            1.1  Important Advantages       ........................    1
  69.  
  70.         CHAPTER 2 - GETTING A QUICK START     .....................    3
  71.            2.1  Checking Compatibility Using CHIPSET     ..........    3
  72.            2.2  Making a Demo Diskette for Testing   ..............    3
  73.            2.3  Viewing Upper Memory with HIGHMEM    ..............    5
  74.               2.3.1  Category "Bank Switch"      ..................    6
  75.               2.3.2  Category "Read Only"      ....................    6
  76.               2.3.3  Category "No DMA"      .......................    7
  77.               2.3.4  Category "DMA Danger"      ...................    7
  78.               2.3.5  Category "Unavailable"       .................    7
  79.               2.3.6  LCD Displays       ...........................    7
  80.               2.3.7  Obtaining Hard-Copy       ....................    7
  81.            2.4  "The Demo Worked But Now It Hangs"  ...............    8
  82.            2.5  Using HIGHDMA.SYS to Monitor DMA    ...............    8
  83.            2.6  Further Reading       .............................    9
  84.  
  85.         CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     .........   10
  86.            3.1  APPEND=<kbytes>        ............................   10
  87.            3.2  BANKSWITCH=<segment>:<kbytes>        ..............   10
  88.            3.3  CACHE=<kbytes>        .............................   11
  89.            3.4  DOS=<segment>:<kbytes>        .....................   11
  90.            3.5  EXCLUDE=<segment>:<kbytes>        .................   12
  91.            3.6  KEY=<AccessKey>        ............................   12
  92.            3.7  MOVE=TABLES        ................................   12
  93.            3.8  MOVE=MAINBIOS        ..............................   12
  94.               3.8.1  The ADDHOLES suboption      ..................   12
  95.            3.9  MOVE=OVERLAY        ...............................   13
  96.            3.10  MOVE=VIDEOBIOS        ............................   13
  97.            3.11  MOVE=XBDA        .................................   13
  98.            3.12  NAME=<RegisteredUserName>        .................   13
  99.            3.13  PHYSICAL=<MemoryController>        ...............   14
  100.               3.13.1  The OVERRIDE suboption      .................   14
  101.               3.13.2  The NOEMS suboption      ....................   14
  102.               3.13.3  The FRAME suboption      ....................   14
  103.            3.14  RESTRICT=<ab> <cd> <ef>      .....................   15
  104.            3.15  SHADOW=<segment>:<kbytes>        .................   16
  105.            3.16  TRACE=MAINBIOS and TRACE=VIDEOBIOS      ..........   16
  106.            3.17  The ? (question mark) Option    ..................   16
  107.            3.18  The /NOSPLIT Option      .........................   16
  108.  
  109.         CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   ...   18
  110.            4.1  HIGHDRVR Command Line Syntax     ..................   18
  111.               4.1.1  HIGHDRVR's /STUB=0 and /STUB=1 Options    ....   18
  112.            4.2  HIGHTSR Command Line Syntax     ...................   18
  113.            4.3  The /SIZE Option      .............................   19
  114.            4.4  Measuring Load Requirements Using /SIZE    ........   19
  115.            4.5  Achieving Best Fit Using /SIZE:n1    ..............   20
  116.            4.6  Borrowing Memory Using /SIZE:n1 n2    .............   20
  117.  
  118.  
  119.  
  120.         
  121.  
  122.  
  123.                                 TABLE OF CONTENTS
  124.  
  125.  
  126.            4.7  The /LOW Option      ..............................   21
  127.            4.8  The /RESTRICT Option      .........................   21
  128.            4.9  The /!NOPAUSE Option      .........................   22
  129.            4.10  The /NOENV Option (HIGHTSR only)    ..............   22
  130.  
  131.         CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     ...............   24
  132.            5.1  The /REPLACE Option      ..........................   24
  133.            5.2  The /SHRINK Option      ...........................   24
  134.            5.3  The /NOSPLIT Option      ..........................   25
  135.            5.4  The /RESTRICT Option      .........................   25
  136.            5.5  Limiting UMB Memory      ..........................   25
  137.  
  138.         CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS      27
  139.            6.1  The /MOVE Option      .............................   27
  140.            6.2  The /FORCE Option      ............................   27
  141.            6.3  The /RESTRICT Option      .........................   27
  142.  
  143.         CHAPTER 7 - SPECIAL CONSIDERATIONS       ..................   29
  144.            7.1  Specifying Command Line Options with Indirect Files   29
  145.            7.2  Using the DOS=F000:32 Option     ..................   29
  146.            7.3  Video Display RAM above 640k    ...................   30
  147.            7.4  Video Adapter Bios ROMs     .......................   31
  148.            7.5  LASTBYTE.SYS and Expanded Memory     ..............   32
  149.            7.6  Fine-Tuning your Adapter Hardware Configuration       33
  150.  
  151.         CHAPTER 8 - USE WITH OTHER SOFTWARE     ...................   34
  152.            8.1  Microsoft's FASTOPEN and MODE programs    .........   34
  153.            8.2  Microsoft's SHARE program      ....................   34
  154.            8.3  Microsoft's MS-DOS       ..........................   35
  155.               8.3.1  Using DEVICEHIGH and LOADHIGH     ............   36
  156.               8.3.2  Using HIGHDRVR and HIGHTSR     ...............   36
  157.            8.4  Microsoft Windows       ...........................   37
  158.               8.4.1  Modifying the Windows SYSTEM.INI File    .....   37
  159.               8.4.2  Positioning an EMS Page Frame    .............   38
  160.               8.4.3  "Unsupported Data Configuration"      ........   38
  161.               8.4.4  HIGHMEM and Windows 386 Enhanced Mode   ......   39
  162.            8.5  HyperWare's HyperDisk       .......................   39
  163.            8.6  J.P. Software's 4DOS      .........................   39
  164.            8.7  David Hamilton's BUFFIT      ......................   40
  165.            8.8  Charles Lazo's WAS      ...........................   40
  166.            8.9  Philip Gardner's DOSMAX      ......................   40
  167.               8.9.1  Trashed Floppy Diskettes      ................   41
  168.  
  169.         APPENDIX 1 - HOW TO REACH US     ..........................   42
  170.  
  171.         APPENDIX 2 - GETTING UPDATES VIA THE INTERNET    ..........   44
  172.  
  173.         APPENDIX 3 - ACKNOWLEDGEMENTS        ......................   45
  174.  
  175.         APPENDIX 4 - LIMITED WARRANTY       .......................   46
  176.  
  177.  
  178.  
  179.  
  180.         
  181.  
  182.  
  183.  
  184.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               1
  185.  
  186.  
  187.                         CHAPTER 1 - INTRODUCTION        
  188.  
  189.  
  190.         The  Last  Byte  Memory  Manager is a collection of software that
  191.         can  provide  up to 384k of additional memory to your computer in
  192.         the  upper  memory  area between 640k and 1 meg.  It does this by
  193.         using  shadow ram memory, existing fixed read/write (RAM) memory,
  194.         or by mapping expanded memory (EMS) pages into the upper area.  
  195.  
  196.         With  The Last Byte Memory Manager, device drivers, terminate and
  197.         stay  resident  (TSR)  programs,  and  more  can be moved up into
  198.         upper  memory,  leaving  more  conventional  memory available for
  199.         your  application  programs.  Depending on your hardware, you may
  200.         also  be  able  to extend the total conventional memory from 640k
  201.         to as much as 736k.  
  202.  
  203.         The  Last  Byte  Memory  Manager  package  also  includes several
  204.         advanced  utility  programs that can move the master environment,
  205.         DOS  FILES,  DOS  BUFFERS  into  upper  memory.   Other  advanced
  206.         utilities  create  ram disks, print spoolers, command line recall
  207.         (history)  buffers,  emulated  expanded memory, and TSR "markers"
  208.         (to  facilitate  TSR  removal).  Best of all, these utilities can
  209.         even  use  shadow  ram memory which has been disabled (refered to
  210.         as  "Bank-Switch"  memory) by the presence of the display buffer,
  211.         unshadowed read-only memories (ROMs), and other adapter cards.  
  212.  
  213.  
  214.         1.1 Important Advantages        
  215.  
  216.         The   Last   Byte   Memory  Manager  offers  several  significant
  217.         advantages over other MS-DOS Upper Memory Managers: 
  218.  
  219.              1.  The  Last  Byte  Memory  Manager will work with any
  220.                  processor  chip, even the 8088 used in the original
  221.                  IBM  PC.  Many memory managers require a 386 cpu or
  222.                  better.  
  223.  
  224.              2.  The  Last Byte Memory Manager doesn't use protected
  225.                  mode.   Unlike  those  memory managers that do, The
  226.                  Last  Byte  Memory  Manager  is  totally compatible
  227.                  with   any   protected   mode  software,  not  just
  228.                  Microsoft Windows.  
  229.  
  230.              3.  The  Last  Byte  Memory Manager doesn't require any
  231.                  extended  memory.   Some  memory managers depend on
  232.                  the  processor's  ability  to remap physical memory
  233.                  from above 1MB into the upper memory area.  
  234.  
  235.              4.  On  motherboards  that  use  one  of  the supported
  236.                  memory  controller  chips,  The  Last  Byte  Memory
  237.                  Manager,  unlike all other memory managers, can use
  238.  
  239.  
  240.  
  241.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  242.  
  243.  
  244.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               2
  245.  
  246.  
  247.                  the  unused  shadow  ram  normally  disabled by the
  248.                  display  buffer,  unshadowed ROMs or adapter cards.
  249.                  This  gives  it  the unique ability to use all 384k
  250.                  of upper memory! 
  251.  
  252.              5.  The  Last  Byte  Memory  Manager does not slow down
  253.                  the  performance  of your computer, because it does
  254.                  not  incur the 5-10% execution overhead inherent in
  255.                  protected mode.  
  256.  
  257.              6.  On  motherboards  that  use  one  of  the supported
  258.                  memory  controller  chips,  The  Last  Byte  Memory
  259.                  Manager   can   extend  conventional  memory  using
  260.                  regular  full-speed  motherboard memory rather than
  261.                  using  the  EGA/VGA  display  buffer.  (The display
  262.                  buffer  memory of some EGA/VGA adapter cards can be
  263.                  as much as six times slower than regular memory.)  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  302.  
  303.  
  304.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               3
  305.  
  306.  
  307.                      CHAPTER 2 - GETTING A QUICK START     
  308.  
  309.  
  310.         The  first  thing  to  do is to be sure that The Last Byte Memory
  311.         Manager   will   work   on  your  computer.   Fundamentally,  the
  312.         requirements  are  DOS  version  3.1  or later and some method of
  313.         implementing  memory  in the upper memory area between 640k and 1
  314.         meg.    Any   Intel  (or  Intel-compatible)  processor  will  do,
  315.         including  the  original  Intel  8088 cpu.  No extended memory is
  316.         required.  
  317.  
  318.  
  319.         2.1 Checking Compatibility Using CHIPSET      
  320.  
  321.         The  CHIPSET  program  is  designed to determine if The Last Byte
  322.         Memory   Manager  is  compatible  with  your  computer.   To  run
  323.         CHIPSET, simply enter its name on the command line: 
  324.  
  325.                 A>CHIPSET 
  326.  
  327.         If  successful, CHIPSET will give you the option of automatically
  328.         linking  to  the INSTALL program to either create a demo diskette
  329.         (as  described  below)  or  to  install the software on your hard
  330.         disk.   For  more detailed information on the CHIPSET program and
  331.         system requirements, consult the file CHIPSET.DOC.  
  332.  
  333.  
  334.         2.2 Making a Demo Diskette for Testing    
  335.  
  336.         To  install The Last Byte Memory Manager on a floppy diskette for
  337.         testing, perform the following three steps: 
  338.  
  339.              Step 1:  Use  the  MS-DOS  FORMAT  command  with the /S
  340.                       option  to  prepare  a  bootable  floppy disk.
  341.                       You will need this in Step 2.  
  342.  
  343.              Step 2:  Run  the  CHIPSET program.  If it succeeds, it
  344.                       will  ask  you "Do you want to run the INSTALL
  345.                       program  now?".  Answer yes.  When it displays
  346.                       the  first  screen  of  the  INSTALL  program,
  347.                       select   the   first   option,   "Creating   a
  348.                       demonstration   diskette"   and   follow   the
  349.                       prompts.  
  350.  
  351.              Step 3:   Once  you  have  created  your  demonstration
  352.                       diskette,  press  Ctrl-Alt-Del  to reboot your
  353.                       computer from the diskette.  
  354.  
  355.         When  your  computer  reboots,  LASTBYTE.SYS  will  pause  thirty
  356.         seconds  and  then  require a keypress to proceed.  The pause and
  357.         the  keypress are removed when you purchase and install an access
  358.  
  359.  
  360.  
  361.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  362.  
  363.  
  364.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               4
  365.  
  366.  
  367.         key   (see   ORDERFRM.DOC).    There   are,   however,  no  other
  368.         restrictions   on   the  unlicensed  version  -  it  is  a  fully
  369.         functional version of the software.  
  370.  
  371.         If  everything  goes ok during the boot, you'll see a sign-on box
  372.         that looks something like the following: 
  373.  
  374.       ╔═══════════════════════════════════════════════════════════════════╗
  375.       ║         THE LAST BYTE MEMORY MANAGER (tm) Version 2.51a           ║
  376.       ║ Copyright (C) 1990-94, Key Software Products, All Rights Reserved ║
  377.       ║    « You can LICENSE a copy of this software for only $29.95! »   ║
  378.       ╟───────────────────────────────────────────────────────────────────╢
  379.       ║     50.0 Mhz 80486 with 256KB Cache and OPTi Electronics 82C495   ║
  380.       ╟───────────────────────────────────────────────────────────────────╢
  381.       ║  Address Range  Size    Width    Bandwidth    Description         ║
  382.       ║                256 KB 128 bits 200.0 MB/Sec   Secondary CPU Cache ║
  383.       ║   00000-9FFFF  640 KB  32 bits  97.6 MB/Sec   Conventional Memory ║
  384.       ║   C0000-EFFFF  192 KB  32 bits  97.6 MB/Sec   Shadow Ram Memory   ║
  385.       ║   A0000-AFFFF   64 KB  16 bits   1.7 MB/Sec   VGA Graphics Buffer ║
  386.       ║   B8000-BFFFF   32 KB  16 bits   1.7 MB/Sec   VGA Color Text Bfr  ║
  387.       ║   C0000-C7FFF   32 KB   8 bits   1.2 MB/Sec   VGA Adapter Bios    ║
  388.       ║   C8000-C97FF    6 KB   8 bits   1.2 MB/Sec   Fixed Disk Bios     ║
  389.       ║   C9800-C9BFF    1 KB   8 bits   1.2 MB/Sec   Fixed Disk Ram      ║
  390.       ║   F0000-FFFFF   64 KB   8 bits   2.0 MB/Sec   AMI Bios (06/06/91) ║
  391.       ╟───────────────────────────────────────────────────────────────────╢
  392.       ║ Conv:640k High-DOS:144k Bank-Switch:16k Shadowed:96k Excluded:128k║
  393.       ╟───────────────────────────────────────────────────────────────────╢
  394.       ║ The Last Byte Memory Manager is a trademark of Key Software Prod. ║
  395.       ╚═══════════════════════════════════════════════════════════════════╝
  396.  
  397.         If  your computer stops before displaying the box shown above, or
  398.         if  it  fails  to  operate  properly after booting, there are two
  399.         possible reasons: 
  400.  
  401.              1.  CHIPSET  identified  the  wrong  memory controller.
  402.                  Try  running  CHIPSET again, and this time manually
  403.                  test  each of the menu options, noting if more than
  404.                  one  chipset  is  identified.   If so, then run the
  405.                  INSTALL   program   again  for  one  of  the  other
  406.                  chipsets that it finds.  
  407.  
  408.              2.  The  Last  Byte  Memory Manager failed to recognize
  409.                  one  of  your  installed  adapters  that  uses some
  410.                  portion  of  the  upper  memory  address space.  If
  411.                  this  happens,  you'll  probably  need  to  use  an
  412.                  EXCLUDE  option on the LASTBYTE.SYS command line to
  413.                  manually  disable the corresponding region(s) where
  414.                  conflict occurs.   
  415.  
  416.         To  temporarily  get  around  either  of  these problems, you can
  417.         reboot  and manually bypass execution of all The Last Byte Memory
  418.  
  419.  
  420.  
  421.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  422.  
  423.  
  424.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               5
  425.  
  426.  
  427.         Manager  software  by  simultaneously holding down the <alt> key,
  428.         the  <ctrl>  key,  and either the <leftshift> or <rightshift> key
  429.         during the boot sequence.  
  430.  
  431.         If  The  Last  Byte  Memory  Manager  installs  and  AUTOEXEC.BAT
  432.         finishes  properly,  then  your  display  will be filled with the
  433.         output  of  the  HIGHMEM  program  and  the  current time will be
  434.         displayed  in  inverse video in the upper left-hand corner.  This
  435.         verifies  that  HIGHTSR  has  successfully loaded both the device
  436.         driver  ANSI.SYS  and the TSR program CLOCK.EXE into upper memory
  437.         and that they are operating properly.  
  438.  
  439.         To exit from HIGHMEM, simply press the Esc key.  
  440.  
  441.         Once  you  are  convinced  that  The  Last Byte Memory Manager is
  442.         working  satisfactorily,  you may install it on your hard disk by
  443.         making drive C: the current drive by entering 
  444.  
  445.                 C: 
  446.  
  447.         and rerunning CHIPSET or INSTALL.  
  448.  
  449.  
  450.         2.3 Viewing Upper Memory with HIGHMEM     
  451.  
  452.         Depending  on  what  adapter  cards you have installed, HIGHMEM's
  453.         output should look something like that shown below.  
  454.  
  455.         Bracketed  numbers  in  the  High-DOS  column (e.g., "[141,136]")
  456.         indicate  free  memory  that  is  available for additional device
  457.         drivers and TSRs.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  482.  
  483.  
  484.       Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               6
  485.  
  486.  
  487.       HIGHMEM v2.51a (C) Key Software Products 1990-94. All Rights Reserved.
  488.  
  489.       MCB  Hex Address Description     [Type] <Mark>       Size  Category   
  490.       ──── ─────────── ───────────────────────────────  ───────  ───────────
  491.       CC00 A0000-CBFFF Reserved Memory Group
  492.       CC02 A0000-AFFFF ╠═16-bit VGA Graphics Buffer      65,536  Unavailable
  493.       CC04 B0000-B7FFF ╠═Unavailable                     32,768  Unavailable
  494.       CC06 B8000-BFFFF ╠═16-bit VGA Color Text Buffer    32,768  Unavailable
  495.       CC08 C0000-C7FFF ╠═Shadowed 8-bit VGA Bios Rom     32,768
  496.       CC0A C8000-C97FF ╠═8-bit Fixed Disk Adapter Bios [  6,144] Bank Switch
  497.       CC0C C9800-C9BFF ╠═8-bit Fixed Disk Adapter Ram  [  1,024] Bank Switch
  498.       CC0E C9C00-CBFFF ╚═DOS Unusable                  [  9,216] Bank Switch
  499.       CC10 CC110-CC54F LASTBYTE    [DEV]                  1,088
  500.       CC55 CC560-CD5BF ANSI        [DEV]                  4,192
  501.       CD5C CD5D0-CD6CF CLOCK       [ENV]                    256
  502.       CD6D CD6E0-CD88F CLOCK       [TSR]                    432
  503.       CD89 CD8A0-EFFEF [∙∙∙Free∙∙∙]                    [141,136]
  504.       EFFF F0000-FFFFF Shadowed 8-bit AMI Main Bios      65,536  Read Only
  505.  
  506.                                           ┌─[Avail]─┐┌─[InUse]─┐┌─[Total]─┐
  507.                             Upper Memory: │ 141,136 ││  39,088 ││ 180,224 │
  508.                                Read Only: │       0 ││  65,536 ││  65,536 │
  509.                              Bank Switch: │  16,384 ││       0 ││  16,384 │
  510.                                      HMA: │  15,872 ││  49,648 ││  65,520 │
  511.                                           └─────────┘└─────────┘└─────────┘
  512.  
  513.         Entries  under  the  column  "Category"  indicate  special memory
  514.         characteristics as follows: 
  515.  
  516.  
  517.         2.3.1 Category "Bank Switch"       
  518.  
  519.         Bank  Switch  memory  is  shadow ram memory that normally remains
  520.         disabled  in  order  to  access an adapter that uses a portion of
  521.         the  same address space.  However, bank switch memory can be used
  522.         by   some  of  the  advanced  utilities  contained  in  the  file
  523.         TLB-A251.ZIP  to  store  data  for  a  ram disk, a print spooler,
  524.         emulated EMS memory, or TSR markers.   
  525.  
  526.  
  527.         2.3.2 Category "Read Only"       
  528.  
  529.         Read  only  shadow  ram memory is due to a physical limitation in
  530.         certain  shadow  ram  controllers, and is usually associated with
  531.         the  main bios region between F000-FFFF.  Read only memory cannot
  532.         be  used to load device drivers or TSRs.  However, it can be used
  533.         by  most  of  The Last Byte Memory Manager utilities, thus making
  534.         more of the read-write shadow ram available.  
  535.  
  536.         For  more  information  on  how to use read only memory, refer to
  537.         LASTBYTE.SYS  options  DOS=<segment>:<kbytes>,  MOVE=OVERLAY  and
  538.  
  539.  
  540.  
  541.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  542.  
  543.  
  544.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               7
  545.  
  546.  
  547.         MOVE=TABLES  in  this  document, the HIGHHOLE option described in
  548.         ADVANCED.DOC,  and  all references to the /NOSPLIT option in both
  549.         documents.  
  550.  
  551.  
  552.         2.3.3 Category "No DMA"       
  553.  
  554.         Some  shadow  ram memory may not support direct memory access due
  555.         to  a  physical  limitation  in  certain  shadow ram controllers.
  556.         Software  (such  as  a  disk cache and some CD-Rom software) that
  557.         attempts  DMA  access  to this region simply will not work.  (See
  558.         the section below on HIGHDMA.SYS) 
  559.  
  560.  
  561.         2.3.4 Category "DMA Danger"       
  562.  
  563.         This  phrase  indicates  that  there  is  a  16-bit adapter which
  564.         occupies  a  portion  of  the same 128k address space (A000-BFFF,
  565.         C000-DFFF,  E000-FFFF).   Software (such as a disk cache and some
  566.         CD-Rom  software)  that  attempts  DMA  access in this region may
  567.         corrupt  data anywhere within the region due to a hardware design
  568.         weakness  in  the ISA (AT) bus; this is not a problem with either
  569.         the  EISA  or  MicroChannel  bus.   (See  the  section  below  on
  570.         HIGHDMA.SYS) 
  571.  
  572.  
  573.         2.3.5 Category "Unavailable"        
  574.  
  575.         There is no usable upper memory in this region.  
  576.  
  577.  
  578.         2.3.6 LCD Displays        
  579.  
  580.         HIGHMEM   automatically  senses  whether  you  have  a  color  or
  581.         monochrome  display  to  determine  how  to  present  data on the
  582.         screen.   However,  you may force the mode using one of the /MONO
  583.         or  /COLOR  command  line  options.   This  may  be  useful,  for
  584.         example,  with  LCD  displays that simulate color using shades of
  585.         grey.  
  586.  
  587.  
  588.         2.3.7 Obtaining Hard-Copy        
  589.  
  590.         You  can  get  a  hardcopy  of  the  HIGHMEM  display  by  simply
  591.         redirecting  its  output on the command line in the usual manner.
  592.         To go directly to your printer, use: 
  593.  
  594.                 A>HIGHMEM >PRN 
  595.  
  596.         Or, to capture the output in a file called "HIGHMEM.DAT" use: 
  597.  
  598.  
  599.  
  600.  
  601.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  602.  
  603.  
  604.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               8
  605.  
  606.  
  607.                 A>HIGHMEM >HIGHMEM.DAT 
  608.  
  609.  
  610.         2.4 "The Demo Worked But Now It Hangs"   
  611.  
  612.         The  demo worked so you modified your CONFIG.SYS and AUTOEXEC.BAT
  613.         and  now  your  computer  hangs  during the boot process.  What's
  614.         wrong? 
  615.  
  616.         Some  software just simply can't be loaded into shadow ram.  Most
  617.         often  this  is  because  the software wants to use Direct Memory
  618.         Access   (DMA)  to  transfer  data  using  a  buffer  within  the
  619.         software's  resident location in memory.  Common examples of such
  620.         software  are  disk  caching  software  (such  as  SmartDrive and
  621.         HyperDisk),  proprietary  device  drivers for hard disks (such as
  622.         ASPI4DOS.SYS),  and  proprietary device drivers for CD-ROMs (such
  623.         as MTMCDE.SYS).  
  624.  
  625.         If  the  software  that  uses  DMA  is in shadow ram memory, then
  626.         there are two potential problems: 
  627.  
  628.              (1)  There's  a  16-bit  adapter card occupying part of
  629.                   the  same  128K  upper  memory  region  where  the
  630.                   software  was  loaded.   (Indicated  by the phrase
  631.                   "DMA   Danger"  in  the  category  column  of  the
  632.                   HIGHMEM  display.)  For  a complete description of
  633.                   this  problem  and  a  possible  solution, see the
  634.                   section below called "RESTRICT=<ab>,<cd>,<ef>".   
  635.  
  636.              (2)  The  design  of  your  particular chipset does not
  637.                   allow  DMA  transfers  to/from  shadow ram memory.
  638.                   (Indicated  by the phrase "No DMA" in the category
  639.                   column  of  the  HIGHMEM display.)  In some cases,
  640.                   you  can  fix  the  problem  by  simply  disabling
  641.                   caching  in  that  particular  shadow  ram  region
  642.                   where  the  software  loads using your CMOS setup.
  643.                   In  other  cases,  the  software that uses DMA may
  644.                   provide  command  line  options to avoid DMA or to
  645.                   position  the  DMA  buffer somewhere other than in
  646.                   upper  memory.   In  a  few  cases,  there  may be
  647.                   alternative  software  that  doesn't  use  DMA  at
  648.                   all.  
  649.  
  650.         In  either case, if none of these "work arounds" fix the problem,
  651.         you  may  have  to simply load that software low (in conventional
  652.         memory).  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  662.  
  663.  
  664.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)               9
  665.  
  666.  
  667.         2.5 Using HIGHDMA.SYS to Monitor DMA     
  668.  
  669.         DMA  access  to  the upper memory area (UMA) is only something to
  670.         worry  about  if  the  phrase "No DMA" or "DMA Danger" appears in
  671.         the  category column of the HIGHMEM display.  If neither appears,
  672.         there is no reason to use this utility.  
  673.  
  674.         HIGHDMA.SYS  is  a  small  utility  that  helps  identify  device
  675.         drivers,  TSR's, or other software that attempt DMA access to the
  676.         UMA.   It  is  installed  in  CONFIG.SYS  (without  command  line
  677.         options) immediately after LASTBYTE.SYS: 
  678.  
  679.         E.g.,
  680.  
  681.                 DEVICE=C:\TLBMM\LASTBYTE.SYS . . .
  682.                 DEVICE=C:\TLBMM\HIGHDMA.SYS
  683.  
  684.         Once  installed,  any subsequent DMA access to the UMA will cause
  685.         a warning such as: 
  686.  
  687.                 ╔═════════════════════════════════════════╗
  688.                 ║ *** DMA Access to UMA Segment EXXX! *** ║
  689.                 ╚═════════════════════════════════════════╝
  690.                 Press any key to continue...
  691.  
  692.         The  actual  segment  number  may  vary, but in most cases what's
  693.         more  important  is  the  software  that  was loaded or used just
  694.         before this message appeared.  
  695.  
  696.  
  697.         2.6 Further Reading        
  698.  
  699.         The  following  article  provides  an excellent definition of the
  700.         various   kinds   of  memory,  such  as  conventional,  extended,
  701.         expanded,  high,  and  upper.   More  important,  however, is its
  702.         discussion  of  how  various  adapter cards make use of the upper
  703.         address  space,  and  may  provide  some insight if you're having
  704.         problems   getting  The  Last  Byte  Memory  Manager  to  install
  705.         properly: 
  706.  
  707.              Barry  Simon,  "How  to Get the Most from Your System's
  708.              High  DOS Memory", PC Magazine, Vol. 9, No. 10 (May 29,
  709.              1990), pp. 347-358.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  722.  
  723.  
  724.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              10
  725.  
  726.  
  727.                CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     
  728.  
  729.  
  730.         During  initialization,  LASTBYTE.SYS  scans upper memory looking
  731.         for  Bios  ROMs, the video display buffer, and adapter cards that
  732.         use  some  portion  of  the  upper  memory address space.  Of the
  733.         upper  memory  available on your computer, the unoccupied portion
  734.         defaults  to  High-DOS  memory, and the occupied portion defaults
  735.         to Bank-Switch memory.  
  736.  
  737.         These  defaults  can  be  modified  by  the  use  of command line
  738.         options.    There   are   several   command   line   options  for
  739.         LASTBYTE.SYS.  Many of these use a format like: 
  740.  
  741.                 <keyword>=<segment>:<kbytes> 
  742.  
  743.         where  <keyword>  is  one  of  the  option  keywords  and  may be
  744.         abbreviated  by  its  first  letter,  <segment>  is  a four-digit
  745.         hexadecimal  segment  address  in  the  range  A000  to FC00, and
  746.         <kbytes> is a decimal number in kilobytes.  
  747.  
  748.         There are two restrictions on these options: 
  749.  
  750.              1.  The  base  must  be  exactly  4 hexadecimal digits,
  751.                  must  lie  at or above A000, and must be a multiple
  752.                  of 0020 (512 bytes), and 
  753.  
  754.              2.  The size must be in the range 1-384 kb.  
  755.  
  756.         The  "multiple  of 0020" requirement for the base is necessary to
  757.         be  consistent  with  the  resolution  that  The Last Byte Memory
  758.         Manager  uses  to  organize  high  memory  during initialization.
  759.         However,  this  requirement is often affected by the much coarser
  760.         resolution used by most memory controllers.  
  761.  
  762.         The  upper area is partitioned into blocks.  Some controllers use
  763.         16k  blocks,  some use 32k blocks, and some use 64k blocks.  Each
  764.         block  must  be either totally enabled or disabled.  I.e., if any
  765.         part  of  a  block's address space is disabled by the presence of
  766.         an  adapter  card,  the  entire  block  of memory is disabled and
  767.         cannot be made available as High-DOS Memory.  
  768.  
  769.  
  770.         3.1 APPEND=<kbytes>         
  771.  
  772.         This  option  is used in conjunction with the HIGHAPND utility to
  773.         "stretch"  the  top of conventional memory beyond 640k.  For more
  774.         information,  refer to the description of the HIGHAPND utility in
  775.         ADVANCED.DOC.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  782.  
  783.  
  784.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              11
  785.  
  786.  
  787.         3.2 BANKSWITCH=<segment>:<kbytes>         
  788.  
  789.         Forces  a  region  of upper memory that would normally be used as
  790.         High-DOS memory to be made available as Bank-Switch memory.  
  791.  
  792.                 ┌─────────────────────────────────────────────────┐
  793.                 │ This option requires a memory controller chip.  │
  794.                 └─────────────────────────────────────────────────┘ 
  795.  
  796.  
  797.         3.3 CACHE=<kbytes>         
  798.  
  799.         Forces  LASTBYTE.SYS  to  think that there is a cache between the
  800.         CPU  and  main  memory and to set its size.  (This has nothing to
  801.         do  with  disk  caching!)  This option is not normally necessary;
  802.         LASTBYTE.SYS  normally  will automatically detect the presence of
  803.         a cache and its size.  
  804.  
  805.         Activating  bank-switch memory causes the contents of a cache (if
  806.         present)  to  be  invalid;  this  is known as a "cache coherency"
  807.         problem.    If   a   cache   is   detected  during  installation,
  808.         LASTBYTE.SYS  checks  to  see if any portion of the upper address
  809.         space  is  cached.   If  not,  then  no  cache  coherency problem
  810.         exists.  
  811.  
  812.         If  the upper address space is cached, however, LASTBYTE.SYS will
  813.         flush  the  cache  on every access to Bank-Switch memory in order
  814.         to  prevent  the  cache  from  providing invalid data to the CPU.
  815.         The  cache  is  flushed  by  filling  it  from  low  memory.  The
  816.         <kbytes> value is used to determine how much to fill.  
  817.  
  818.  
  819.         3.4 DOS=<segment>:<kbytes>         
  820.  
  821.         Forces  a region of upper memory to be made available as High-DOS
  822.         memory.   Some  parts  of  the  main or video bios are often used
  823.         only  during  initialization; in such cases, this option provides
  824.         a way to re-use that portion of the shadowed bios.  
  825.  
  826.         If  your  chipset  forces  shadow  ram  in  the  main bios region
  827.         (F000-FFFF)  to  be read-only, you can use this option to convert
  828.         a  portion  of  that  region  into available read-only memory for
  829.         several  of  the  utilities  in  The  Last  Byte  Memory  Manager
  830.         package.   
  831.  
  832.         This  is  most  useful  when  the  main bios is "split", with the
  833.         initialization  section in the first 32k and the run-time section
  834.         in  the second 32k, as is the case with some (not all) of the AMI
  835.         bios  rom's.   In  this  case,  the corresponding option would be
  836.         DOS=F000:32.  
  837.  
  838.  
  839.  
  840.  
  841.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  842.  
  843.  
  844.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              12
  845.  
  846.  
  847.         As  an  alternative,  you may want to use the HIGHHOLE utility in
  848.         conjunction  with  the HOLE=<segment>:<bytes> option as discussed
  849.         in ADVANCED.DOC.  
  850.  
  851.  
  852.         3.5 EXCLUDE=<segment>:<kbytes>         
  853.  
  854.         Forces  a  region  of upper memory unavailable as either High-DOS
  855.         or Bank-Switch memory.  
  856.  
  857.  
  858.         3.6 KEY=<AccessKey>         
  859.  
  860.         When  you register The Last Byte Memory Manager, you are given an
  861.         access  key that is derived from the spelling of your name.  This
  862.         eight  character  key  should  be specified using this option, as
  863.         in: 
  864.  
  865.                 KEY=12345678 
  866.  
  867.         This  option  must  be  used  in conjunction with the NAME option
  868.         discussed below.  
  869.  
  870.  
  871.         3.7 MOVE=TABLES         
  872.  
  873.         This  option  is  for  chipsets in which the main bios shadow ram
  874.         (F000-FFFF)  is  forced  read-only,  such  as  ETEQ, OPTi, Intel,
  875.         VLSI,  and  a  few  others.   It converts a small area within the
  876.         EGA/VGA  bios  shadow  ram  into usable Hi-DOS memory by moving a
  877.         few  parameter  tables  from  there  into  free R/O shadow ram if
  878.         possible.  
  879.  
  880.         One  or  more  available  read-only  shadow  ram  regions must be
  881.         specified  using  the  HOLE option; the TRACE option and HIGHHOLE
  882.         program may be used to suggest suitable holes.  
  883.  
  884.         This  option  cannot be used in conjunction with the MOVE=OVERLAY
  885.         option.  
  886.  
  887.  
  888.         3.8 MOVE=MAINBIOS         
  889.  
  890.         Tries  to  move  the  main  bios  to a better location within the
  891.         available  upper  memory in order to reduce fragmentation of free
  892.         memory.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  902.  
  903.  
  904.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              13
  905.  
  906.  
  907.         3.8.1 The ADDHOLES suboption       
  908.  
  909.         MOVE=MAINBIOS,ADDHOLES  will  create  seven holes in the residual
  910.         8k left at FE00 for a total of more than 3k.  
  911.  
  912.  
  913.         3.9 MOVE=OVERLAY         
  914.  
  915.         This  option  is  for  chipsets in which the main bios shadow ram
  916.         (F000-FFFF)  is  forced  read-only,  such  as  ETEQ, OPTi, Intel,
  917.         VLSI,  and  a  few  others.  It puts that ram in write-only mode,
  918.         copies  the  video  bios  on  top of the main bios initialization
  919.         code  at  the  beginning  of  the  bios,  then returns the ram to
  920.         read-only  mode.   Then the old video bios region is converted to
  921.         usable Hi-DOS memory.  
  922.  
  923.         This  option  cannot  be used in conjunction with the MOVE=TABLES
  924.         option.  
  925.  
  926.  
  927.         3.10 MOVE=VIDEOBIOS         
  928.  
  929.         Tries  to move an EGA or VGA bios to a better location within the
  930.         available  upper  memory in order to reduce fragmentation of free
  931.         memory.  
  932.  
  933.  
  934.         3.11 MOVE=XBDA         
  935.  
  936.         This  option  relocates the Extended Bios Data Area (XBDA), if it
  937.         exists,  into  Upper  Memory.  The XBDA is usually 1k reserved at
  938.         the  top  of  conventional  memory  by  the  main  Bios.  Not all
  939.         machines  use an XBDA, but if it exists, LASTBYTE.SYS will report
  940.         639k  of  Conventional  Memory  instead of 640k, and the advanced
  941.         utility   HIGHAPND  will  refuse  to  append  any  memory.   Some
  942.         machines  may  not operate properly with a relocated XBDA, so use
  943.         this  option with caution.  (Note that some computer viruses also
  944.         "steal" the top 1k of memory.) 
  945.  
  946.  
  947.         3.12 NAME=<RegisteredUserName>         
  948.  
  949.         When  you register The Last Byte Memory Manager, you are given an
  950.         access  key that is derived from the spelling of your name.  This
  951.         option  is  used  to  specify  your name as used to generate that
  952.         key, as in: 
  953.  
  954.                 NAME=Daniel_W._Lewis 
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  962.  
  963.  
  964.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              14
  965.  
  966.  
  967.                 ┌────────────────────────────────────────────────┐
  968.                 │ Note: Spaces MUST be replaced by underscores!  │
  969.                 └────────────────────────────────────────────────┘ 
  970.  
  971.         This  option  should  be  used in conjunction with the KEY option
  972.         discussed earlier.  
  973.  
  974.  
  975.         3.13 PHYSICAL=<MemoryController>         
  976.  
  977.         Used  to  specify the memory controller determined by the CHIPSET
  978.         program.  
  979.  
  980.  
  981.         3.13.1 The OVERRIDE suboption       
  982.  
  983.         Many  memory  controller chips can relocate all or part of shadow
  984.         ram  to  the  top of (extended) memory.  If LASTBYTE.SYS fails to
  985.         install with the error message: 
  986.  
  987.                "Shadow Ram memory relocated - Use OVERRIDE option"
  988.  
  989.         try adding the OVERRIDE suboption to the PHYSICAL option, as in: 
  990.  
  991.                 PHYSICAL=82C212,OVERRIDE 
  992.  
  993.         This  disables  any  shadow ram relocation that may be in effect,
  994.         regardless  of  your  CMOS  configuration  menu  setup.  The CMOS
  995.         setup  menu  of  your  BIOS may also provide an option to disable
  996.         relocation  directly,  but  there are some that determine whether
  997.         to relocate or not based on other configuration options.   
  998.  
  999.  
  1000.         3.13.2 The NOEMS suboption       
  1001.  
  1002.         May  be  used in conjunction with PHYSICAL=LIM4EMS or EEMS to use
  1003.         the 64k page frame as High-DOS Memory, as in: 
  1004.  
  1005.                 PHYSICAL=LIM4EMS,NOEMS 
  1006.  
  1007.         The   NOEMS   suboption   must   be   used  in  conjunction  with
  1008.         PHYSICAL=LIM3EMS   (i.e.,   PHYSICAL=LIM3EMS,NOEMS).    Doing  so
  1009.         disables other (normal) use of all expanded memory.  
  1010.  
  1011.  
  1012.         3.13.3 The FRAME suboption       
  1013.  
  1014.         May  be used with those low-level physical drivers that implement
  1015.         64k  of  Hi-Dos  memory  by using the four 16k pages of their EMS
  1016.         page frame, as in: 
  1017.  
  1018.  
  1019.  
  1020.  
  1021.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1022.  
  1023.  
  1024.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              15
  1025.  
  1026.  
  1027.                 PHYSICAL=HT12,FRAME=CC00 
  1028.  
  1029.         The  possible  values (e.g., "CC00") for the position of the page
  1030.         frame  is  restricted  by the hardware capability of the chipset,
  1031.         but  is  always  limited  to no more than C000, C400, C800, CC00,
  1032.         D000, D400, D800, DC00, or E000.  
  1033.  
  1034.  
  1035.         3.14 RESTRICT=<ab> <cd> <ef>       
  1036.  
  1037.         Address  lines  A15 and A16 are not latched in hardware design of
  1038.         the  AT  bus.  As a consequence, some 16-bit adapter cards do not
  1039.         properly  decode  these  address  lines  within  the  narrow time
  1040.         constraints  imposed  by  the  Address Latch Enable (ALE) signal,
  1041.         and  will  occassionally  respond  to  a  memory  access  that is
  1042.         directed  at  some  other portion of the address space.  Thinking
  1043.         that  it  is  for  them, they force the transfer into 16-bit mode
  1044.         even  though the intended recipient requires 8-bit mode, and thus
  1045.         cause  erroneous  data  to  be  transferred  to  the bytes in the
  1046.         odd-numbered addresses.  
  1047.  
  1048.         The  most common (and damaging) occurence occurs during the 8-bit
  1049.         DMA  transfers  between a floppy disk drive and upper memory near
  1050.         the address space occupied by an offending 16-bit adapter card.  
  1051.  
  1052.         Due  to  organization  of the address signals on the AT bus, this
  1053.         phenomena  only  occurs when the two address areas are within the
  1054.         same  128k  region.   There  are  three such regions in the upper
  1055.         area:  A0000-BFFFF,  C0000-DFFFF,  and E0000-FFFFF.  LASTBYTE.SYS
  1056.         automatically  senses  the  presence  of  16-bit adapter cards in
  1057.         each  of  these three regions and records this information within
  1058.         its  resident image for use by its utilities.  LASTBYTE.SYS skips
  1059.         this  test  if it detects a PC with a Micro Channel bus (like the
  1060.         PS/2) since problem was corrected in its design.  
  1061.  
  1062.         The  RESTRICT  option  is  provided  to  override  this automatic
  1063.         detection  of  16-bit adapters.  Each of the three arguments (one
  1064.         per  128k region) should be replaced by either "0" (indicating no
  1065.         16-bit  adapters),  or  "1"  (indicating the presense of a 16-bit
  1066.         adapter) and separated by commas.  
  1067.  
  1068.         For  example,  the  option RESTRICT=1,1,0 would imply that one or
  1069.         more  16-bit  adapters  are located in the first two 128k regions
  1070.         of   upper   memory  (A000-DFFF),  so  that  when  the  companion
  1071.         /RESTRICT  option  of  HIGHDRVR,  HIGHTSR, HIGHDUBL or HIGHUMM is
  1072.         used,  only  High-DOS  memory  in  the  region  E000-FFFF will be
  1073.         allocated.  
  1074.  
  1075.         (Note:  The  /RESTRICT  option  is also supported by the advanced
  1076.         utilities  HIGHEMS3,  and HIGHEMS4.  The default operation of the
  1077.         advanced  utility HIGHBFRS is /RESTRICT, but this may be disabled
  1078.  
  1079.  
  1080.  
  1081.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1082.  
  1083.  
  1084.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              16
  1085.  
  1086.  
  1087.         by use of its /NORESTRICT option.) 
  1088.  
  1089.  
  1090.         3.15 SHADOW=<segment>:<kbytes>         
  1091.  
  1092.         The  Last  Byte  Memory Manager will automatically copy the video
  1093.         bios  and  main  bios  to  shadow  ram  if  they  aren't  already
  1094.         shadowed.   However,  it  will  not do so for other adapter ROMs.
  1095.         This   is   because  some  controllers  "hide"  a  small  RAM  by
  1096.         overlaying  it  in  a  portion  of  the  same  address space they
  1097.         declare  as  being  filled  with  ROM.   Such  a RAM is no longer
  1098.         accessible  when the ROM is shadowed, usually causing the adapter
  1099.         to stop functioning.  
  1100.  
  1101.         This  option  is  for those who want to forces a region of memory
  1102.         (presumably  ROM)  to  be  copied  into  shadow  ram.   If  other
  1103.         hardware  is  detected  outside  the specified region, but within
  1104.         the  same  memory  controller  block  which  conflicts  with this
  1105.         request,  a  corresponding  error  message  will be displayed and
  1106.         LASTBYTE.SYS will not be installed.  
  1107.  
  1108.                 ┌─────────────────────────────────────────────────┐
  1109.                 │ This option requires a memory controller chip.  │
  1110.                 └─────────────────────────────────────────────────┘ 
  1111.  
  1112.  
  1113.         3.16 TRACE=MAINBIOS and TRACE=VIDEOBIOS       
  1114.  
  1115.         Either  or  both  of  these options, used in conjunction with the
  1116.         HIGHHOLE  program,  are intended to help identify unused space in
  1117.         a   bios  ROM  or  space  that  is  used  only  during  cold-boot
  1118.         initialization.   Most such regions may be converted into usuable
  1119.         upper   memory   with  use  of  the  HOLE  option.   For  a  full
  1120.         description   of  these  options,  see  the  description  of  the
  1121.         HIGHHOLE program in ADVANCED.DOC.  
  1122.  
  1123.  
  1124.         3.17 The ? (question mark) Option     
  1125.  
  1126.         Causes  LASTBYTE.SYS  to  erase  the screen, display a summary of
  1127.         what  it  finds  in  the  upper  memory  area,  and pause for two
  1128.         seconds   to   give   the   user   an  opportunity  to  read  the
  1129.         information.   To  freeze this display for a longer period, press
  1130.         <Ctrl>-S;  then to continue with CONFIG.SYS processing, press any
  1131.         key.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1142.  
  1143.  
  1144.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              17
  1145.  
  1146.  
  1147.         3.18 The /NOSPLIT Option       
  1148.  
  1149.         This  option  is  for  chipsets in which the main bios shadow ram
  1150.         (F000-FFFF)  is  forced  read-only,  such  as  ETEQ, OPTi, Intel,
  1151.         VLSI, and a few others.   
  1152.  
  1153.         By  default,  LASTBYTE.SYS  will  try to put most of its resident
  1154.         image   into   this  read-only  memory  if  a  HOLE  option  (see
  1155.         ADVANCED.DOC)  has been used to make a region of read-only memory
  1156.         available.  The /NOSPLIT option prevents this.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1202.  
  1203.  
  1204.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              18
  1205.  
  1206.  
  1207.             CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   
  1208.  
  1209.  
  1210.         HIGHDRVR  is  a  device  driver that is used to load other device
  1211.         drivers  into upper memory.  HIGHTSR is a program that is used to
  1212.         load  TSR programs into upper memory.  Both utilities use most of
  1213.         the  same  command line options as discussed in the sections that
  1214.         follow.  
  1215.  
  1216.  
  1217.         4.1 HIGHDRVR Command Line Syntax      
  1218.  
  1219.         The command line syntax of the CONFIG.SYS line for HIGHDRVR is: 
  1220.  
  1221.             DEVICE=[path]HIGHDRVR.SYS [options] <filespec> [options]
  1222.  
  1223.         where  '<filespec>'  is  the  filename of the device driver to be
  1224.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  1225.         specifcation.   The  filespec  may  be  preceded  by  one or more
  1226.         options,  and  followed by options at the end of the command line
  1227.         as required by the particular driver to be loaded.  
  1228.  
  1229.         When  HIGHDRVR  searches  the disk for the device driver to load,
  1230.         it follows the following search strategy: 
  1231.  
  1232.              1.  If  '<filespec>'  includes  a  drive  or  directory
  1233.                  specification,  this  will  be  the only place that
  1234.                  HIGHDRVR will look.  
  1235.  
  1236.         Otherwise, HIGHDRVR will search for the driver in: 
  1237.  
  1238.              2.  The current (root) directory, and then 
  1239.  
  1240.              3.  The same directory where HIGHDRVR was found.  
  1241.  
  1242.  
  1243.         4.1.1 HIGHDRVR's /STUB=0 and /STUB=1 Options     
  1244.  
  1245.         By  default,  HIGHDRVR will make its own determination of whether
  1246.         or  not  it  is necessary to leave a small "stub" in conventional
  1247.         memory.   However,  you  may  override its choice by using either
  1248.         /STUB=0 (leave no stub) or /STUB=1 (force a stub).  
  1249.  
  1250.  
  1251.         4.2 HIGHTSR Command Line Syntax      
  1252.  
  1253.         The command line syntax for HIGHTSR is: 
  1254.  
  1255.                   [path]HIGHTSR [options] <filespec> [options]
  1256.  
  1257.         where  '<filespec>'  is  the  filename  of  the TSR program to be
  1258.  
  1259.  
  1260.  
  1261.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1262.  
  1263.  
  1264.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              19
  1265.  
  1266.  
  1267.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  1268.         specifcation.   The  filespec  may  be  preceded  by  one or more
  1269.         options,  and  followed by options at the end of the command line
  1270.         as required by the particular TSR to be loaded.  
  1271.  
  1272.         When  HIGHTSR searches the disk for the device driver to load, it
  1273.         follows   the   same  strategy  that  MS-DOS  uses  when  loading
  1274.         programs: 
  1275.  
  1276.              1.  If  '<filespec>'  includes  a  drive  or  directory
  1277.                  specification,  this  will  be  the only place that
  1278.                  HIGHTSR will look.  
  1279.  
  1280.         Otherwise, HIGHTSR will search for the TSR program in: 
  1281.  
  1282.              2.  The current directory, and then 
  1283.  
  1284.              3.  Those  directories  given  by  the PATH environment
  1285.                  variable.  
  1286.  
  1287.         HIGHTSR  may also be used with the MS-DOS "INSTALL=" directive of
  1288.         a CONFIG.SYS file.  
  1289.  
  1290.  
  1291.         4.3 The /SIZE Option       
  1292.  
  1293.         The  amount  of  High-DOS memory required to load a device driver
  1294.         or  TSR  is  the  larger  of two amounts: (1) the amount required
  1295.         during  initialization  and  (2)  the  final resident requirement
  1296.         once  installed.   Either or both of these may be greater than or
  1297.         equal to the size of the file.  
  1298.  
  1299.         Most   device   drivers   and   TSR's  require  more  memory  for
  1300.         initialization  than  when  resident,  although  there  are a few
  1301.         (such   as   SMARTDRV.SYS  and  NANSI.SYS)  which  require  extra
  1302.         resident  memory  for  buffers,  etc.   The  normal  operation of
  1303.         HIGHDRVR  and  HIGHTSR is to use the largest free High-DOS memory
  1304.         block  to load the software since the resident memory requirement
  1305.         cannot  be  determined  until  after the software has been loaded
  1306.         and initialized.  
  1307.  
  1308.         Unfortunately,  this  can  lead  to  a  less  than optimum use of
  1309.         memory.   If  the  memory  requirements were known, then a memory
  1310.         block  could  be  selected using a "best fit" strategy; i.e., the
  1311.         smallest  free  High-DOS  memory  block  which  is larger than or
  1312.         equal  to  the  load  requirement.   This usually results in much
  1313.         better utilization of memory.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1322.  
  1323.  
  1324.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              20
  1325.  
  1326.  
  1327.         4.4 Measuring Load Requirements Using /SIZE     
  1328.  
  1329.         If  inserted  on the command line of HIGHTSR or HIGHDRVR as shown
  1330.         below: 
  1331.  
  1332.                 C:\TLBMM\HIGHTSR /SIZE C:\DOS\PRINT /D:PRN 
  1333.  
  1334.                 -or- 
  1335.  
  1336.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE C:\DOS\ANSI.SYS 
  1337.  
  1338.         then  both  the  initialization and resident requirements will be
  1339.         displayed  on  the console after the software has been loaded and
  1340.         initialized.  
  1341.  
  1342.  
  1343.         4.5 Achieving Best Fit Using /SIZE:n1     
  1344.  
  1345.         The  larger  of  the initialization and resident requirements may
  1346.         be  specified  with  the  /SIZE  option  to  force  a  "best fit"
  1347.         allocation.  For example: 
  1348.  
  1349.                 C:\TLBMM\HIGHTSR /SIZE:17120 C:\DOS\PRINT.EXE /D:PRN 
  1350.  
  1351.                 -or- 
  1352.  
  1353.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS /SIZE:12032 C:\DOS\ANSI.SYS 
  1354.  
  1355.  
  1356.         4.6 Borrowing Memory Using /SIZE:n1 n2     
  1357.  
  1358.         Usually  the resident requirement is less than the initialization
  1359.         requirement.   If  there  isn't  enough  free  High-DOS memory to
  1360.         satisfy  the  initialization requirement, but there is enough for
  1361.         the  resident  requirement,  then  you  may still be able to load
  1362.         your  software  by adding a second parameter to the /SIZE option,
  1363.         as in: 
  1364.  
  1365.                 C:\TLBMM\HIGHTSR /SIZE:16208,5776 C:\DOS\PRINT /D:PRN 
  1366.  
  1367.                 -or- 
  1368.  
  1369.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS             /SIZE:12032,4820
  1370.                 C:\DOS\ANSI.SYS 
  1371.  
  1372.         In  this  example, the initialization requirement is specified by
  1373.         the  first parameter and is 16208 bytes; the resident requirement
  1374.         is  specified  by  the  second parameter and is 5776 bytes.  Note
  1375.         that  specifying  the  second parameter is not helpful unless the
  1376.         resident    requirement   is   less   than   the   initialization
  1377.         requirement.  
  1378.  
  1379.  
  1380.  
  1381.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1382.  
  1383.  
  1384.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              21
  1385.  
  1386.  
  1387.  
  1388.         When  the  second  parameter  is  used, HIGHTSR first looks for a
  1389.         free  area larger than or equal to the initialization requirement
  1390.         (the  first parameter); if found, it simply loads the software in
  1391.         this  area  and  the  second  paramter  is  ignored.   Otherwise,
  1392.         HIGHTSR  searches  for  a  free  area larger than or equal to the
  1393.         resident  requirement  (the  second  parameter),  and  which  has
  1394.         "data"  allocated  immediately  above  it that can be temporarily
  1395.         moved  to create enough free memory to satisfy the initialization
  1396.         requirement.   Such  "data"  includes High-DOS memory used by the
  1397.         advanced   utilities   HIGHDISK,  HIGHEMS3,  HIGHEMS4,  HIGHSPLR,
  1398.         HIGHKEY, and HIGMARK.  
  1399.  
  1400.  
  1401.         4.7 The /LOW Option       
  1402.  
  1403.         As  noted  earlier,  TSR's  and device drivers often require much
  1404.         more  memory  during  installation  as  compared to that required
  1405.         once  they  are  resident.   This  can  prevent loading them into
  1406.         High-DOS  memory  even  if  there's enough for the resident image
  1407.         (but not enough for initialization).  
  1408.  
  1409.         The  /LOW  option  can be used with some TSR's and device drivers
  1410.         to get around this problem: 
  1411.  
  1412.                 C:\TLBMM\HIGHTSR /LOW C:\DOS\APPEND 
  1413.  
  1414.                 -or- 
  1415.  
  1416.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS                         /LOW
  1417.                 C:\DRIVERS\MYDRIVER.SYS 
  1418.  
  1419.         For  example,  the  first  example above loads a TSR (APPEND.EXE)
  1420.         and  initializes  it  in  low (conventional) memory where there's
  1421.         lots  of  room,  then copies the (smaller) resident image up into
  1422.         upper memory.  
  1423.  
  1424.                 ╔═════════════════════════════════════════════════╗
  1425.                 ║ WARNING: The design of some software may pre-   ║ 
  1426.                 ║ vent the /LOW option from working properly.     ║ 
  1427.                 ║ Don't use it unless necessary, and then only    ║ 
  1428.                 ║ after you have tested it to be sure everything  ║ 
  1429.                 ║ works as expected.  (For example, it will NOT   ║ 
  1430.                 ║ work with PRINT, SHARE, FASTOPEN, MODE, or      ║ 
  1431.                 ║ HyperDisk.)                                     ║ 
  1432.                 ╚═════════════════════════════════════════════════╝
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1442.  
  1443.  
  1444.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              22
  1445.  
  1446.  
  1447.         4.8 The /RESTRICT Option       
  1448.  
  1449.         When  used,  this  option  restricts  which 128k regions of upper
  1450.         memory  may  be  allocated  for  use  with HIGHDRVR, HIGHDUBL and
  1451.         HIGHTSR.   For  a  detailed  discussion  of why these regions may
  1452.         need  to  be  restricted and how to control the restrictions, see
  1453.         the   discussion   of   the   RESTRICT  option  in  the  detailed
  1454.         description of LASTBYTE.SYS.  
  1455.  
  1456.  
  1457.         4.9 The /!NOPAUSE Option       
  1458.  
  1459.         All  of  the  utility  programs  (*.EXE files) that come with The
  1460.         Last   Byte  Memory  Manager  support  the  command  line  option
  1461.         /!NOPAUSE.   This  option  eliminates the wait-for-keyboard pause
  1462.         after  an error message is displayed.  When one of these programs
  1463.         terminates  with  an  error  message,  it also returns a non-zero
  1464.         errorlevel  which  can be tested in batch files to make automatic
  1465.         decisions  about  how  to  proceed.  The  /!NOPAUSE option simply
  1466.         makes use of the errorlevel more practical.  
  1467.  
  1468.  
  1469.         4.10 The /NOENV Option (HIGHTSR only)     
  1470.  
  1471.         All  programs,  including  TSR's,  are  allocated  two regions of
  1472.         memory  when  they  are  loaded:  One is the area for the program
  1473.         itself,  and  the  other  is for a copy of the environment.  Most
  1474.         TSR's  don't  make  use  of  their environment, and some actually
  1475.         release it to the operating system rather than hanging onto it.  
  1476.  
  1477.         If  HIGHMEM  finds  an environment block, the corresponding entry
  1478.         in  the  "Description"  column will have the name of the TSR that
  1479.         it  belongs  to  (such as "CLOCK.EXE") followed by the indication
  1480.         "[Env]".    Occassionally,  you  may  see  a  similar  indication
  1481.         "[Dat]";  this  is  a  data block explicitly allocated by the TSR
  1482.         for some unknown purpose.  
  1483.  
  1484.                 ┌─────────────────────────────────────────────────┐
  1485.                 │ The authors of some TSR's attempt to save a bit │
  1486.                 │ of memory by having the TSR eliminate its own   │
  1487.                 │ Program Segment Prefix (PSP) during initializa- │
  1488.                 │ tion.  Doing so makes it impossible to identify │
  1489.                 │ the TSR'senvironment block.  However, this byte │
  1490.                 │ saving mentality will usually mean that the TSR │
  1491.                 │ initialization code also eliminates its environ-│
  1492.                 │ ment block, so this is rarely a problem.        │
  1493.                 └─────────────────────────────────────────────────┘ 
  1494.  
  1495.         If  you  see  a  block labelled "[Env]" in the output of HIGHMEM,
  1496.         then  you  can  use  the /NOENV command line option of HIGHTSR to
  1497.         release this block, even if the TSR didn't: 
  1498.  
  1499.  
  1500.  
  1501.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1502.  
  1503.  
  1504.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              23
  1505.  
  1506.  
  1507.  
  1508.                 C:\TLBMM\HIGHTSR /NOENV C:\TLBMM\CLOCK 
  1509.  
  1510.         As  noted  earlier,  some  TSRs  will  release  their environment
  1511.         anyway  and  so you may be tempted to load them without using the
  1512.         /NOENV  option.   This  usually  will  create  a  "hole" in upper
  1513.         memory  since  the  TSR's  environment is almost always allocated
  1514.         just  below  the TSR itself.  Use of the /NOENV option forces the
  1515.         environment  to  be  allocated down in conventional memory (where
  1516.         it will be reclaimed later) so that the "hole" is eliminated.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1562.  
  1563.  
  1564.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              24
  1565.  
  1566.  
  1567.                   CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     
  1568.  
  1569.  
  1570.         HIGHUMM  is  a  device  driver that creates, and lets application
  1571.         software  use,  Upper  Memory  Blocks (UMB's) in the upper memory
  1572.         area  via  a  standard  protocol that is part of what is known as
  1573.         the  Extended  Memory Specification (XMS).  The number, size, and
  1574.         location  of  UMB  blocks vary widely depending upon the types of
  1575.         hardware adapter cards resident within the upper address space.  
  1576.  
  1577.         If  HIGHUMM  is  installed,  you may use the DOS 5 DEVICEHIGH and
  1578.         LOADHIGH  commands  as  alternatives  to  HIGHDRVR  and  HIGHTSR.
  1579.         HIGHUMM  can  also  be used to advantage with other software such
  1580.         as  4DOS,  BUFFIT,  WAS, and DOSMAX.  These options are discussed
  1581.         in the next chapter.  
  1582.  
  1583.         HIGHUMM may be installed in one of two ways: 
  1584.  
  1585.              1.  If  an XMS driver has not been loaded, HIGHUMM will
  1586.                  become  a  UMB-Only  XMS  device driver.  All other
  1587.                  XMS  functions will return failure, indicating that
  1588.                  the function is not implemented.  For example, 
  1589.  
  1590.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options}
  1591.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1592.  
  1593.              2.  If  an  XMS  driver (such as HIMEM.SYS) has already
  1594.                  been  loaded, HIGHUMM will link into it, adding the
  1595.                  UMB functions.  For example: 
  1596.  
  1597.                  DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options}
  1598.                  DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  1599.                  DEVICE=C:\TLBMM\HIGHUMM.SYS
  1600.  
  1601.         Do  not  install  HIGHUMM using either HIGHDRVR or the DEVICEHIGH
  1602.         command; simply use a DEVICE command, as shown above.  
  1603.  
  1604.  
  1605.         5.1 The /REPLACE Option       
  1606.  
  1607.         Although  described  in  the  XMS  specification, most XMS device
  1608.         drivers  so  not implement the UMB functions.  If your XMS driver
  1609.         happens  to  also  be  a  UMB provider, HIGHUMM will abort with a
  1610.         corresponding  error  message.   You  may  then  use the /REPLACE
  1611.         option  on  the HIGHUMM.SYS command line to force it to take over
  1612.         responsibility for providing UMBs.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1622.  
  1623.  
  1624.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              25
  1625.  
  1626.  
  1627.         5.2 The /SHRINK Option       
  1628.  
  1629.         This  option should be used only with MS-DOS version 5.0 or later
  1630.         when DOS=UMB is specified in the CONFIG.SYS file.  
  1631.  
  1632.         When  you  specify  DOS=UMB in the CONFIG.SYS file, the operating
  1633.         system  checks  each  device driver you install to see if it is a
  1634.         UMB  provider.   If  one is discovered, the operating system then
  1635.         repeatedly  calls  the  driver  until  all of its UMB blocks have
  1636.         been  allocated.   From this point on, the operating system takes
  1637.         control  over this allocated memory, dispensing it as needed.  As
  1638.         you  can  see,  at  this  point  the  device  driver is no longer
  1639.         needed.  
  1640.  
  1641.         The  /SHRINK option lets the operating system allocate almost all
  1642.         of  the  memory  space normally occupied by HIGHUMM itself.  When
  1643.         HIGHUMM  detects  that  the last UMB block has been allocated, it
  1644.         then  disables  itself.  This strategy reduces the final resident
  1645.         memory  requirement  of  HIGHUMM  to about 100 bytes, and makes a
  1646.         few more kilobytes available for use.  
  1647.  
  1648.  
  1649.         5.3 The /NOSPLIT Option       
  1650.  
  1651.         HIGHUMM  requires  that  LASTBYTE.SYS  be  installed  first.   It
  1652.         automatically  loads  itself  into  upper memory, putting much of
  1653.         itself   into   read-only   shadow  ram,  unused  HMA  space,  or
  1654.         bank-switch  memory  if  available.   The  /NOSPLIT option can be
  1655.         used to prevent it from doing this.  
  1656.  
  1657.  
  1658.         5.4 The /RESTRICT Option       
  1659.  
  1660.         When  used,  this  option  restricts  which 128k regions of upper
  1661.         memory  may  be  allocated  for use with HIGHUMM.  For a detailed
  1662.         discussion  of  why  these  regions may need to be restricted and
  1663.         how  to  control  the  restrictions,  see  the  discussion of the
  1664.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1665.  
  1666.  
  1667.         5.5 Limiting UMB Memory       
  1668.  
  1669.         If  you  want  to limit how much upper memory can be allocated by
  1670.         HIGHUMM  as UMB's, you can specify this in kbytes as an option on
  1671.         the HIGHUMM.SYS command line, as in: 
  1672.  
  1673.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 60 
  1674.  
  1675.         This  provides  a guarantee that some amount of upper memory will
  1676.         never  be  allocated  by  HIGHUMM.SYS,  and  will  thus  still be
  1677.         available for other uses.  
  1678.  
  1679.  
  1680.  
  1681.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1682.  
  1683.  
  1684.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              26
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1742.  
  1743.  
  1744.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              27
  1745.  
  1746.  
  1747.           CHAPTER 6 - HIGHDUBL.SYS: A REPLACEMENT FOR DBLSPACE.SYS    
  1748.  
  1749.  
  1750.         If  you have installed the DOS 6 disk compression software called
  1751.         DBLSPACE,  then each time you boot the operating system loads the
  1752.         device  driver  DBLSPACE.BIN  from  a  hidden  file  in  the root
  1753.         directory  to  the  top  of  conventional  memory.   Later during
  1754.         CONFIG.SYS  processing,  a DEVICE=DBLSPACE.SYS command is used to
  1755.         relocate  DBLSPACE.BIN to the bottom of conventional memory, or a
  1756.         DEVICEHIGH=DBLSPACE.SYS  command  is  used with DOS=UMB and a UMB
  1757.         provider (like HIGHUMM.SYS) to move it to upper (UMB) memory.  
  1758.  
  1759.         HIGHDUBL.SYS   is   a  replacement  for  DBLSPACE.SYS.   It  does
  1760.         everything  that  DBLSPACE.SYS can do and more.  Specifically, it
  1761.         has  the  additional ability to relocate DBLSPACE.BIN into Hi-DOS
  1762.         memory  even  if  HIGHUMM.SYS  and DOS=UMB are not installed.  In
  1763.         other  words, if you are using HIGHDRVR.SYS instead of DEVICEHIGH
  1764.         commands  in  CONFIG.SYS,  then  you should also use HIGHDUBL.SYS
  1765.         instead of DBLSPACE.SYS to relocate DBLSPACE.BIN, as in: 
  1766.  
  1767.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS 
  1768.  
  1769.  
  1770.         6.1 The /MOVE Option       
  1771.  
  1772.         The  /MOVE  option of HIGHDUBL is only provided for full cosmetic
  1773.         compatibility  with DBLSPACE.SYS.  It is not required in order to
  1774.         relocate  DBLSPACE.BIN  into  Hi-DOS memory.  If used, the proper
  1775.         syntax would be the same as used by DBLSPACE.SYS: 
  1776.  
  1777.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE 
  1778.  
  1779.  
  1780.         6.2 The /FORCE Option       
  1781.  
  1782.         HIGHDUBL.SYS  checks  to see that you are running version 6.00 or
  1783.         6.20  of  DOS  since  those  are the only versions that came with
  1784.         DoubleSpace  disk  compression;  Microsoft  changed to DriveSpace
  1785.         compression  in  DOS version 6.22, and HIGHDUBL.SYS will not work
  1786.         with it.  
  1787.  
  1788.         If  you  are  using  the  older  DoubleSpace  compression  with a
  1789.         version  of  DOS  after  6.20,  you must use the /FORCE option of
  1790.         HIGHDUBL.SYS  to  force  it  to  move  DBLSPACE.BIN into High-DOS
  1791.         memory.  
  1792.  
  1793.         If  you  are  using  DriveSpace compression, the only way to move
  1794.         DRVSPACE.BIN  into  High-DOS  memory  is  to install HIGHUMM.SYS,
  1795.         DOS=UMB, and DEVICE=DRVSPACE.SYS /MOVE.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1802.  
  1803.  
  1804.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              28
  1805.  
  1806.  
  1807.         6.3 The /RESTRICT Option       
  1808.  
  1809.         When used as in: 
  1810.  
  1811.                 DEVICE=C:\TLBMM\HIGHDUBL.SYS /MOVE /RESTRICT 
  1812.  
  1813.         this  option  restricts which 128k regions of upper memory may be
  1814.         used  to  load  DBLSPACE.BIN  into Hi-DOS memory.  For a detailed
  1815.         discussion  of  why  these  regions may need to be restricted and
  1816.         how  to  control  the  restrictions,  see  the  discussion of the
  1817.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1862.  
  1863.  
  1864.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              29
  1865.  
  1866.  
  1867.                     CHAPTER 7 - SPECIAL CONSIDERATIONS       
  1868.  
  1869.  
  1870.         7.1 Specifying Command Line Options with Indirect Files   
  1871.  
  1872.         Some  of the device drivers and utility programs in The Last Byte
  1873.         Memory  Manager  package  may  require  lots  of  options  to  be
  1874.         specified.   To  avoid  lengthly command lines, these options can
  1875.         be  placed  in  a text file if the name of that file is specified
  1876.         on  the command line preceded by the '@' character.  For example,
  1877.         you'd  begin  to  run out of room if all of the following options
  1878.         were required on the LASTBYTE.SYS command line: 
  1879.  
  1880.         PHYSICAL=82C302 NAME=Joe_Blow KEY=12345678 APPEND=64 DOS=F000:32 ?
  1881.  
  1882.         As  an  alternative,  create  a  corresponding  text  file called
  1883.         LASTBYTE.CFG (for example), and put the options into it: 
  1884.  
  1885.                 PHYSICAL=82C302   NAME=Joe_Blow   KEY=12345678  APPEND=64
  1886.                 DOS=F000:32 ? 
  1887.  
  1888.         (Carriage returns in the indirect file are treated as blanks) 
  1889.  
  1890.         Then the CONFIG.SYS command line becomes simply: 
  1891.  
  1892.                 DEVICE=C:\TLBMM\LASTBYTE.SYS @LASTBYTE.CFG 
  1893.  
  1894.         In  effect,  options  taken  from  the indirect file are inserted
  1895.         into  the  command  line,  so  that  one  or  more  indirect file
  1896.         references  may  be  placed  among  other  options on the command
  1897.         line: 
  1898.  
  1899.                 DEVICE=C:\TLBMM\LASTBYTE.SYS ? @TLB.1 A=32 @C:\TLB\TLB.2 
  1900.  
  1901.         Indirect  files  may  be  used  on the command line of any device
  1902.         driver  (.SYS  files) or utility program (.EXE files) in The Last
  1903.         Byte Memory Manager package.  
  1904.  
  1905.  
  1906.         7.2 Using the DOS=F000:32 Option      
  1907.  
  1908.         The  64k  region  starting  at paragraph address F000 is the Bios
  1909.         ROM.   Many  computers  use  a  Bios  ROM  developed  by  AMI  or
  1910.         Phoenix.   The  more  recent  versions  of  these ROMs devote the
  1911.         first  32k  to  initialization  code that is only used during the
  1912.         boot  sequence,  and  use the second 32k for the run-time portion
  1913.         that  must remain available at all times.  (This seems to be true
  1914.         of the Award Bios as well, but has not been verified.)   
  1915.  
  1916.         Recent  versions  of MR BIOS have compressed the run-time portion
  1917.         even  more, and indicate the extent of the initialization code as
  1918.  
  1919.  
  1920.  
  1921.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1922.  
  1923.  
  1924.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              30
  1925.  
  1926.  
  1927.         "AVAIL:F000-????"  in  the  shadow ram setup screen.  The size of
  1928.         the  initialization  code  is  one  greater than the diference of
  1929.         these two hexadecimal numbers.  
  1930.  
  1931.         By  the time your computer gets to the point in its boot sequence
  1932.         where  it  is  installing  the  device  drivers (e.g., when it is
  1933.         installing  LASTBYTE.SYS),  the  Bios  initialization  code is no
  1934.         longer  needed.   If  you  have  one of these AMI or Phoenix Bios
  1935.         chips,  you  can  capture  another 32k of upper memory by using a
  1936.         DOS=F000:32 option on the LASTBYTE.SYS command line.  
  1937.  
  1938.         Of  course,  whenever  you  press Ctrl-Alt-Del to do a warm boot,
  1939.         the  ROM  Bios  initialization  code  needs to be executed again!
  1940.         And  that could be a problem since you've effectively disabled it
  1941.         with   the   DOS=F000:32   option!    Fortunately,   LASTBYTE.SYS
  1942.         intercepts   all   keyboard  input  and  keeps  an  eye  out  for
  1943.         Ctrl-Alt-Del.   When it sees the warm boot request, it will force
  1944.         a  cold  boot  if  you've  used  the  DOS=F000:32  option.   This
  1945.         re-enables  the  entire  64k  Bios ROM so that the initialization
  1946.         code  is  reactivated  before  the processor tries to execute it.
  1947.         Otherwise a normal warm boot is used.  
  1948.  
  1949.                 ╔═════════════════════════════════════════════════╗
  1950.                 ║ WARNING: Some TSRs intercept keyboard interrupt ║ 
  1951.                 ║ 9, and jump directly into a fixed location in   ║ 
  1952.                 ║ the Bios ROM where the Warm Boot code begins.   ║ 
  1953.                 ║ Unfortunately, this will bypass LASTBYTE.SYS's  ║ 
  1954.                 ║ attempt to turn the ROM back on.                ║ 
  1955.                 ╚═════════════════════════════════════════════════╝
  1956.  
  1957.  
  1958.         7.3 Video Display RAM above 640k     
  1959.  
  1960.         In  general,  the  region A0000-BFFFF is the video display buffer
  1961.         area.   Various  display  adapters  (MDA, Hercules, CGA, EGA, and
  1962.         VGA)  typically  use only a small subset of this space.  The Last
  1963.         Byte  Memory  Manager  automatically  senses  what  kind of video
  1964.         display adapter is installed and reserves the space it uses.  
  1965.  
  1966.         The  MDA  (monochrome)  adapter  implements  a  4k text buffer at
  1967.         B0000-B0FFF,  and  the  CGA (color) adapter implements a 16k text
  1968.         and  graphics  buffer  at B8000-BBFFF.  The Hercules adapter uses
  1969.         the  entire 64k region at B0000-BFFFF in graphics modes, although
  1970.         only  the  first  4k of this space (B0000-B0FFF) is used for text
  1971.         modes.  
  1972.  
  1973.         The  EGA  and  VGA adapters have a 64k graphics display buffer at
  1974.         A0000-AFFFF,  and a 32k text display buffer at either B0000-B7FFF
  1975.         (when  used  with  a monochrome display), or at B8000-BFFFF (when
  1976.         used with a color display).  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1982.  
  1983.  
  1984.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              31
  1985.  
  1986.  
  1987.         The  following  chart summarizes these regions as well as some of
  1988.         the  DOS  and  APPEND  optons  you  may  be  able  to  use on the
  1989.         LASTBYTE.SYS  command  line  with these adapters.  Unfortunately,
  1990.         the  ROM  bios  on  a  (very)  few  PC's may write into locations
  1991.         outside  the  area reserved for a particular type of display.  If
  1992.         you  decide  this  is  happening, you may need to add one or more
  1993.         EXCLUDE  options to the LASTBYTE.SYS command line to disable that
  1994.         region.  
  1995.  
  1996.              LASTBYTE.SYS Command Line Options for Display Adapters
  1997.  
  1998.              Adapter         Reserved        DOS         APPEND
  1999.              -------         --------        -------     -------
  2000.              CGA             B800:16                     96
  2001.              MDA             B000:4                      64
  2002.              Hercules        B000:64         B400:48     64
  2003.  
  2004.              EGA/VGA         A000:64         BC00:16     96
  2005.              w/Color         B800:32 
  2006.              Display
  2007.  
  2008.              EGA/VGA         A000:64         B400:16     64
  2009.              w/Mono          B000:32
  2010.              Display
  2011.  
  2012.              VGA Bios        C000:32         C600:8 (see next section)
  2013.  
  2014.              Notes: (1) Windows 3.0 may write in the region B000-BFFF.
  2015.                     (2) The ability to use the DOS and APPEND options 
  2016.                         depends on the availability of memory in the
  2017.                         indicated region.
  2018.  
  2019.  
  2020.         7.4 Video Adapter Bios ROMs      
  2021.  
  2022.         MDA  and CGA use the standard ROM Bios; they have no ROM of their
  2023.         own.   EGA  and  VGA adapters, however, incorporate their own ROM
  2024.         Bios  chip  right on the adapter card.  LASTBYTE.SYS successfully
  2025.         recognizes these ROMs, but has to treat VGA in a special manner: 
  2026.  
  2027.         The  VGA  adapter  made  by  IBM  has  a  24k  ROM  installed  at
  2028.         C0000-C5FFF,  which  means  that  the 8k at C6000-C7FFF should be
  2029.         usable.   Although  almost  all  VGA  clones have a ROM signature
  2030.         that  indicates  24k,  many of them use the C6000-C7FFF space for
  2031.         ROM  Bios  or  RAM  extensions  that  provide  their  "Super VGA"
  2032.         features.    In   particular,   the  Video7  and  Paradise  VGA's
  2033.         incorporate  their  own  RAM from C6000-C7FFF.  (This may also be
  2034.         true  of  other  VGA boards that uses a VLSI chip manufactured by
  2035.         Chips   and  Technologies,  Tseng  Labs,  Paradise,  or  Headland
  2036.         Technologies.)    For   this   reason,  when  LASTBYTE.SYS  finds
  2037.         anybody's  VGA  adapter, it automatically assumes that there is a
  2038.  
  2039.  
  2040.  
  2041.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2042.  
  2043.  
  2044.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              32
  2045.  
  2046.  
  2047.         32k ROM at C0000-C7FFF.  
  2048.  
  2049.  
  2050.         7.5 LASTBYTE.SYS and Expanded Memory      
  2051.  
  2052.         Expanded  memory always has an associated device driver.  If that
  2053.         driver  is loaded before LASTBYTE.SYS in the CONFIG.SYS file (and
  2054.         if  the  hardware is enabled) LASTBYTE.SYS will recognize the 64k
  2055.         EMM  page frame of the expanded memory and do the right thing: It
  2056.         will  treat the page frame like any other adapter ram and disable
  2057.         the  motherboard RAM that falls in the same address space so that
  2058.         it  doesn't  interfere  with the page frame.  For example, if the
  2059.         EMM  driver is loaded first, LASTBYTE.SYS will report the 64k EMM
  2060.         page frame as "EMS Page Frame".  
  2061.  
  2062.         This  works  fine,  of  course,  but loading the EMM driver first
  2063.         precludes  the  possibility  of loading it into upper memory.  To
  2064.         get  the  EMM  driver  into  upper  memory  means that it must be
  2065.         loaded after LASTBYTE.SYS, but you must be careful! 
  2066.  
  2067.         If   LASTBYTE.SYS  is  loaded  first,  the  page  frame  will  be
  2068.         recognized only in two cases: 
  2069.  
  2070.              1.  The   page   frame  used  by  the  expanded  memory
  2071.                  controller  built into some memory controller chips
  2072.                  will  be  recognized  and  reported  as  "EMS  Page
  2073.                  Frame".  
  2074.  
  2075.              2.  The  page  frame of a REAL expanded memory board is
  2076.                  (if  enabled)  recognized  and reported as "Adapter
  2077.                  RAM".  
  2078.  
  2079.         In either case, LASTBYTE.SYS will not use that memory space.  
  2080.  
  2081.                 ╔═════════════════════════════════════════════════╗
  2082.                 ║ WARNING: Some EMS boards must be enabled by     ║ 
  2083.                 ║ their device driver before they respond as      ║ 
  2084.                 ║ read/write memory.  This prevents LASTBYTE.SYS  ║ 
  2085.                 ║ from recognizing them, and you may need a       ║ 
  2086.                 ║ BANKSWITCH option to keep LASTBYTE.SYS from     ║ 
  2087.                 ║ using the page frame memory space.              ║ 
  2088.                 ╚═════════════════════════════════════════════════╝
  2089.  
  2090.         If  you  don't  have  an  expanded  memory board, but have used a
  2091.         device  driver  (like EMM386) that EMULATES expanded memory using
  2092.         extended  memory,  then LASTBYTE.SYS will not know about the page
  2093.         frame  unless  the  emulator is loaded first.  If LASTBYTE.SYS is
  2094.         loaded  first,  then  you  must  use  a EXCLUDE (not BANKSWITCH!)
  2095.         command  line  option  of  LASTBYTE.SYS  to  reserve a 64k region
  2096.         where  the  emulated  page  frame can be placed.  For EMM386, the
  2097.         page  frame  must  be positioned at C000, C400, C800, CC00, D000,
  2098.  
  2099.  
  2100.  
  2101.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2102.  
  2103.  
  2104.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              33
  2105.  
  2106.  
  2107.         D400, D800, DC00, or E000.  
  2108.  
  2109.  
  2110.         7.6 Fine-Tuning your Adapter Hardware Configuration     
  2111.  
  2112.         Many  adapter  cards  occupy  some  portion  of the upper address
  2113.         space.   Some  of  these  cards,  such  as SCSI Disk Controllers,
  2114.         often  have  DIP  switches or jumpers that can be used to set the
  2115.         address space they occupy to one of a few alternatives.  
  2116.  
  2117.         If  the memory map displayed by HIGHMEM is fragmented because one
  2118.         of  these adapters sits between two "....DOS Free" areas, you may
  2119.         want  to  try  to  reposition  the address space occupied by that
  2120.         adapter  by  modifying  the  DIP switch or jumper settings on the
  2121.         card.  
  2122.  
  2123.         Having  one  large  free  memory block is better than two smaller
  2124.         ones  because TSR's and device drivers almost always require more
  2125.         memory  during  initialization  than  once  installed.   In other
  2126.         words,  neither of the two smaller blocks may be large enough for
  2127.         the installation, but might if they were combined.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2162.  
  2163.  
  2164.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              34
  2165.  
  2166.  
  2167.                     CHAPTER 8 - USE WITH OTHER SOFTWARE     
  2168.  
  2169.  
  2170.         8.1 Microsoft's FASTOPEN and MODE programs     
  2171.  
  2172.         The  FASTOPEN  and  MODE programs that come with MS-DOS are TSR's
  2173.         and  as  such may be loaded into upper memory with HIGHTSR.  Once
  2174.         installed,  each  requires  very  little memory, something on the
  2175.         order  of  10k  or  less.  However, neither will install unless a
  2176.         lot  of  memory is available - approximately 50-90k.  (The actual
  2177.         requirement  depends  partly  on  command  line  options; you can
  2178.         determine the requirement using the /SIZE option of HIGHTSR.) 
  2179.  
  2180.                 ╔═════════════════════════════════════════════════╗
  2181.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  2182.                 ║ with FASTOPEN or MODE - it won't work and could ║ 
  2183.                 ║ damage data on your disk!                       ║ 
  2184.                 ╚═════════════════════════════════════════════════╝
  2185.  
  2186.         The  worst  part  is  that  if  FASTOPEN  fails to install itself
  2187.         successfully,  it  doesn't  issue  any  error message - it simply
  2188.         doesn't   display   the   normal   "FASTOPEN  installed"  sign-on
  2189.         message.   Moral:  Let  FASTOPEN and MODE be the first TSR's that
  2190.         are  installed into High Memory in your AUTOEXEC.BAT file so that
  2191.         they get access to the maximum amount of memory.  
  2192.  
  2193.         The  second  hassle  with  these two TSR's is that they cannot be
  2194.         removed  by  using  the advanced utilities HIGHMARK and HIGHUNDO.
  2195.         Evidently  they modify memory other than that tracked by HIGHMARK
  2196.         (the interrupt vector table and that memory allocated to them).  
  2197.  
  2198.  
  2199.         8.2 Microsoft's SHARE program       
  2200.  
  2201.         MS-DOS  4  installs the SHARE program automatically if you have a
  2202.         hard  disk which is greater than 32 MB in a single partition.  It
  2203.         does  this  without  asking  because  it is otherwise possible to
  2204.         corrupt  the  data on the disk when running programs that use the
  2205.         old File Control Block (FCB) approach to access files.  
  2206.  
  2207.         Unfortunately,  some  internal parts of MS-DOS 4.0 also still use
  2208.         FCB's!   So  don't  try  to  prevent  SHARE  from being loaded by
  2209.         removing  it  from  your system!  If MS-DOS can't find it, you'll
  2210.         get  a  warning message during the boot saying that "SHARE should
  2211.         be   loaded   for   large  media".   You  could  load  it  during
  2212.         AUTOEXEC.BAT   processing,  but  you'll  still  get  the  warning
  2213.         because the check occurs during CONFIG.SYS processing.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2222.  
  2223.  
  2224.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              35
  2225.  
  2226.  
  2227.                 ┌─────────────────────────────────────────────────┐
  2228.                 │ NOTE: Version 5 of MS-DOS has corrected this    │ 
  2229.                 │ problem and no longer loads SHARE automatically │ 
  2230.                 │ regardless of the size of your hard disk.       │ 
  2231.                 └─────────────────────────────────────────────────┘ 
  2232.  
  2233.         So  how  can  you load this TSR into upper memory without getting
  2234.         the   warning?    MS-DOS   recently   introduced  the  "INSTALL="
  2235.         directive  that  allows  TSR's  to be installed during CONFIG.SYS
  2236.         processing.   Programs  that Microsoft suggests be loaded in this
  2237.         manner include FASTOPEN, KEYB, NLSFUNC, and SHARE.  For example: 
  2238.  
  2239.                 INSTALL=C:\DOS\SHARE.EXE 
  2240.  
  2241.         The  above  command,  however,  causes SHARE to be loaded down in
  2242.         conventional memory.  to get it into upper memory, use: 
  2243.  
  2244.                 INSTALL=C:\TLBMM\HIGHTSR.EXE C:\DOS\SHARE.EXE 
  2245.  
  2246.                 ╔═════════════════════════════════════════════════╗
  2247.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  2248.                 ║ with SHARE - it won't work and could damage     ║ 
  2249.                 ║ data on your disk!                              ║ 
  2250.                 ╚═════════════════════════════════════════════════╝
  2251.  
  2252.  
  2253.         8.3 Microsoft's MS-DOS        
  2254.  
  2255.         With   the  introduction  of  MS-DOS  5.0,  Microsoft  has  added
  2256.         extensive  support  for  loading software into high memory.  This
  2257.         includes  not  only  device drivers and TSRs, but also the MS-DOS
  2258.         disk  buffers,  the master environment, and most of the operating
  2259.         system itself.  
  2260.  
  2261.         Most  of  this  capability  requires  the  use of an Upper Memory
  2262.         Block   (UMB)   provider   such   as   Key   Software   Products'
  2263.         HIGHUMM.SYS.   Although  the  MS-DOS  5.0  version  of EMM386 now
  2264.         provides  such  support, there are several disadvantages to using
  2265.         it  instead  of  The  Last  Byte  Memory Manager to load software
  2266.         high: 
  2267.  
  2268.              1.  EMM386   requires   a   386  or  better  processor.
  2269.                  (HIGHUMM does not.) 
  2270.  
  2271.              2.  EMM386  requires  that  HIMEM.SYS  be loaded first.
  2272.                  (HIGHUMM  does  not.  However, HIMEM is also needed
  2273.                  to  load  the operating system itself into extended
  2274.                  memory;  The Last Byte Memory Manager allows you to
  2275.                  load HIMEM into upper memory using HIGHDRVR.) 
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2282.  
  2283.  
  2284.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              36
  2285.  
  2286.  
  2287.              3.  Using  HIMEM and EMM386 as the basis of UMB support
  2288.                  requires  that  both  be  loaded  into conventional
  2289.                  memory.  
  2290.  
  2291.              4.  EMM386  puts  the  processor  into  protected mode,
  2292.                  adding  an  instruction  execution  time penalty of
  2293.                  about 5%.  
  2294.  
  2295.         There  are  two  basic  approaches  that  you  can  take  to load
  2296.         software  into  upper  memory  using MS-DOS 5.0 and The Last Byte
  2297.         Memory  Manager.   The  first  of these is to install HIGHUMM and
  2298.         use  the  'DEVICEHIGH'  and  'LOADHIGH'  commands  introduced  in
  2299.         MS-DOS 5.0; the other is to use HIGHDRVR and HIGHTSR.  
  2300.  
  2301.         We  recommend  the  latter  approach because HIGHDRVR and HIGHTSR
  2302.         provide  a  richer  set  of options for controlling the load high
  2303.         process.  
  2304.  
  2305.  
  2306.         8.3.1 Using DEVICEHIGH and LOADHIGH      
  2307.  
  2308.         To  use  this  approach,  your CONFIG.SYS file should contain the
  2309.         following lines: 
  2310.  
  2311.                 DOS=HIGH,UMB 
  2312.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  2313.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  2314.                 DEVICE=C:\TLBMM\HIGHUMM.SYS {and any options} 
  2315.  
  2316.         Then  you can use the MS-DOS 5.0 DEVICEHIGH command in additional
  2317.         lines  of  your CONFIG.SYS file to load your other device drivers
  2318.         into upper memory, as in: 
  2319.  
  2320.                 DEVICEHIGH={device driver to be loaded high} 
  2321.                 DEVICEHIGH={device driver to be loaded high} 
  2322.                         . . .  
  2323.                 DEVICEHIGH={device driver to be loaded high} 
  2324.  
  2325.         With  this  CONFIG.SYS file, your AUTOEXEC.BAT file may load TSRs
  2326.         high using the MS-DOS 5.0 LOADHIGH command as in: 
  2327.  
  2328.                 LOADHIGH C:\DOS\PRINT 
  2329.  
  2330.  
  2331.         8.3.2 Using HIGHDRVR and HIGHTSR      
  2332.  
  2333.         The  second approach is to use the HIGHDRVR and HIGHTSR utilities
  2334.         of  The  Last  Byte  Memory Manager in the normal manner.  To use
  2335.         this  approach, your CONFIG.SYS file should contain the following
  2336.         lines: 
  2337.  
  2338.  
  2339.  
  2340.  
  2341.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2342.  
  2343.  
  2344.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              37
  2345.  
  2346.  
  2347.                 DOS=HIGH 
  2348.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any options} 
  2349.                 DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  2350.  
  2351.         Then  you can use HIGHDRVR in additional lines of your CONFIG.SYS
  2352.         file to load your other device drivers into upper memory, as in: 
  2353.  
  2354.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  2355.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  2356.                                       . . .
  2357.          DEVICE=C:\TLBMM\HIGHDRVR.SYS {device driver to be loaded high}
  2358.  
  2359.         With  this  CONFIG.SYS  file,  your AUTOEXEC.BAT file should load
  2360.         TSRs high using HIGHTSR as in: 
  2361.  
  2362.                           C:\TLBMM\HIGHTSR C:\DOS\PRINT
  2363.  
  2364.  
  2365.         8.4 Microsoft Windows        
  2366.  
  2367.         In  general,  The  Last  Byte Memory Manager has a high degree of
  2368.         compatibility  with  Windows  3.0  and  3.1.   If  you are having
  2369.         trouble  running  Windows,  first  be  sure  that  your system is
  2370.         properly  configured so that it runs without The Last Byte Memory
  2371.         Manager  installed.   If  you  have isolated the problem to their
  2372.         combination,  then perhaps the following information will help to
  2373.         correct the problem: 
  2374.  
  2375.  
  2376.         8.4.1 Modifying the Windows SYSTEM.INI File     
  2377.  
  2378.         With  Windows  running  in  386  enhanced  mode, LASTBYTE.SYS and
  2379.         Windows  will  both  try  to  use  the  upper  memory  area, thus
  2380.         creating  a  conflict.   To  avoid  the  conflict,  you  must ask
  2381.         Windows  to  not  use  this  region.  This can be done with a few
  2382.         configuration  options  in  the  [386Enh]  section of the Windows
  2383.         SYSTEM.INI file: 
  2384.  
  2385.                   EMMExclude=A000-FFFF
  2386.                   HighFloppyReads=no
  2387.                   DualDisplay=yes
  2388.                   SystemROMBreakPoint=no
  2389.  
  2390.         If  you  have  used the EXCLUDE option of LASTBYTE.SYS to disable
  2391.         any  region  of  the upper memory, then Windows may be told it is
  2392.         ok  to  use  that  area.   For example, if LASTBYTE.SYS is loaded
  2393.         using the line: 
  2394.  
  2395.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXCLUDE=D000:64 
  2396.  
  2397.         then  you may use the following configuration option (in addition
  2398.  
  2399.  
  2400.  
  2401.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2402.  
  2403.  
  2404.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              38
  2405.  
  2406.  
  2407.         to the EMMExclude option above) in your SYSTEM.INI file: 
  2408.  
  2409.                 EMMInclude=D000-DFFF 
  2410.  
  2411.         The  EMMInclude  option  will take precedence over the EMMExclude
  2412.         option when the two overlap, as above.  
  2413.  
  2414.  
  2415.         8.4.2 Positioning an EMS Page Frame     
  2416.  
  2417.         If  you  are using the Real or Standard modes of Windows, you may
  2418.         have  installed  an EMS device driver for those applications that
  2419.         need  expanded  memory.  In an attempt to reduce fragmentation of
  2420.         upper  memory, it is useful to position the EMS Page Frame either
  2421.         at  the  bottom  or  top  of  an  otherwise empty region of upper
  2422.         memory.   However,  if  you  have  used the DOS=F000:32 option to
  2423.         gain  another  32k  of  DOS  memory, don't position your EMS Page
  2424.         Frame  at  E800  -  Windows  will not run with it any higher than
  2425.         E000.  
  2426.  
  2427.         The  Enhanced  386  mode  of  Windows  will automatically emulate
  2428.         expanded   memory   for   those  applications  that  require  it.
  2429.         Unfortunately,   Windows   ignores   the  EMMExclude  option  and
  2430.         positions  the  EMS  page frame in upper memory.  If the same 64k
  2431.         area  is used by The Last Byte Memory Manager for something else,
  2432.         your   system   may   hang.   To  correct  the  problem,  add  an
  2433.         "EMSPageFrame=nnnn"  option  in  your  SYSTEM.INI  file  to  tell
  2434.         Windows   where   to   put  the  page  frame,  combined  with  an
  2435.         "EXCLUDE=nnnn:64"  option  on  the  LASTBYTE.SYS  command line to
  2436.         keep it from using this area.  
  2437.  
  2438.  
  2439.         8.4.3 "Unsupported Data Configuration"       
  2440.  
  2441.         The  386 Enhanced mode of Windows 3.0 (not 3.1) has a restriction
  2442.         that  it  cannot  run  when  certain  types of software have been
  2443.         loaded  high.   When  this  happens,  Windows  will terminate and
  2444.         display  the  error  message,  "Unsupported  Data Configuration".
  2445.         This  only  happens  in  386 Enhanced mode, and is not related in
  2446.         particular to use of The Last Byte Memory Manager.  
  2447.  
  2448.         Device  drivers  that are known to load high without this problem
  2449.         include  HIMEM.SYS,  MOUSE.SYS, SETVER.SYS, ANSI.SYS, and all the
  2450.         Key  Software Products device drivers.  A device driver and a TSR
  2451.         known  to  cause this problem are EGA.SYS and DOSKEY.COM.  If you
  2452.         are  experiencing  this error message, you can either run Windows
  2453.         in   another   mode,   or   try  modifying  your  CONFIG.SYS  and
  2454.         AUTOEXEC.BAT files to locate and remove the offending software.  
  2455.  
  2456.         Microsoft   has  removed  this  restriction  in  version  3.1  of
  2457.         Windows.  
  2458.  
  2459.  
  2460.  
  2461.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2462.  
  2463.  
  2464.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              39
  2465.  
  2466.  
  2467.  
  2468.  
  2469.         8.4.4 HIGHMEM and Windows 386 Enhanced Mode    
  2470.  
  2471.         MS-DOS  applications  run from inside Windows 3.0 are given their
  2472.         own   "virtual"   address  space  of  640k.   Windows  tells  the
  2473.         processor   to  map  memory  references  in  this  space  to  the
  2474.         particular  640k  of  physical memory which has been allocated to
  2475.         the  application.   References  outside this range are considered
  2476.         invalid  and  thus  return  garbage.   Since HIGHMEM is a program
  2477.         that  inspects  upper  memory  between 640k and 1 meg, there's no
  2478.         way  it  can  execute  properly  in  this  context.  HIGHMEM will
  2479.         behave normally outside of Windows.  
  2480.  
  2481.  
  2482.         8.5 HyperWare's HyperDisk        
  2483.  
  2484.         HyperDisk  is  a  shareware disk caching utility.  If you use its
  2485.         "XS"  option  to load itself into the 48k block starting at E400,
  2486.         be  sure  to  exclude  this area by using the following option on
  2487.         the LASTBYTE.SYS command line: 
  2488.  
  2489.                 DEVICE=C:\TLBMM\LASTBYTE.SYS EXC=E400:48 
  2490.  
  2491.         A  better  approach  is  to  use  either  HIGHDRVR or HIGHTSR (as
  2492.         appropriate)  to  load  HyperDisk  high (without HyperDisk's "XS"
  2493.         option).   This  method  guarantees  that  the  minimum amount of
  2494.         upper memory will be used.  
  2495.  
  2496.         HyperDisk  can  be  downloaded  from  HyperWare's  BBS  at  (415)
  2497.         882-1735 or obtained directly from: 
  2498.  
  2499.                 FOLEY HI-TECH SYSTEMS           CompuServe: 70262,1763 
  2500.                 172 Amber Drive                 Phone: (415) 826-6084 
  2501.                 San Francisco, CA 94131         FAX: (415) 882-1733 
  2502.  
  2503.  
  2504.         8.6 J.P. Software's 4DOS       
  2505.  
  2506.         4DOS  is  a  shareware  replacement for COMMAND.COM.  HIGHUMM.SYS
  2507.         may  be  used  to  move the 4DOS command processor and its master
  2508.         environment  into  "Upper  Memory  Blocks"  (UMB's)  in the upper
  2509.         memory  area,  thus  reducing  the  amount of conventional memory
  2510.         below 640k used by 4DOS from 3.4k bytes to 256 bytes.  
  2511.  
  2512.         First  you  must install HIGHUMM.SYS as described earlier in this
  2513.         manual.   Then  add  a  "SHELL="  line  to  CONFIG.SYS  for 4DOS,
  2514.         including  the  options  /U (to place the command processor in an
  2515.         UMB)  and  /E:512U  (to  place the master environment in an UMB).
  2516.         The  value  512  is of course only an example - other environment
  2517.         sizes  may  be  specified.   You  may  also want to specify these
  2518.  
  2519.  
  2520.  
  2521.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2522.  
  2523.  
  2524.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              40
  2525.  
  2526.  
  2527.         options   for   secondary   shells  in  the  4DSHELL  environment
  2528.         variable.  Consult the 4DOS documentation for further details.  
  2529.  
  2530.         4DOS  may  be downloaded from Channel 1 BBS at (617) 354-8873, or
  2531.         obtained directly from: 
  2532.  
  2533.                 J.P. Software             CompuServe: 75300,210 
  2534.                 P.O. Box 1470             BIX: "trawson" 
  2535.                 E. Arlington, MA 02174    Internet, Bitnet, etc: 
  2536.                 Voice: (617) 646-3975       75300.210@compuserve.com 
  2537.                 Fax: (617) 646-0904 
  2538.  
  2539.  
  2540.         8.7 David Hamilton's BUFFIT       
  2541.  
  2542.         There's  a very nice shareware scroll-back TSR called BUFFIT that
  2543.         saves  lines  of  text that have been scrolled off the top of the
  2544.         screen  and allows you to pull them back down for review.  One of
  2545.         the  advantages  of  version  3.0  and later of BUFFIT is that it
  2546.         will  load  itself  entirely  into a UMB provided by HIGHUMM.SYS,
  2547.         thus using no conventional memory at all.  
  2548.  
  2549.         To  install  BUFFIT into upper memory, first you must install the
  2550.         HIGHUMM.SYS  device  driver  by  inserting the following lines in
  2551.         your CONFIG.SYS file: 
  2552.  
  2553.                 DEVICE=C:\TLBMM\LASTBYTE.SYS {and any LASTBYTE options} 
  2554.                 DEVICE=C:\TLBMM\HIGHUMM.SYS 
  2555.  
  2556.         Then  all  you  have to do is reboot your computer and run BUFFIT
  2557.         from  the  command  line,  or  else  add  it to your AUTOEXEC.BAT
  2558.         file.  
  2559.  
  2560.         BUFFIT  is  available  from  a number of BBS's, usually under the
  2561.         filename BUFFIT30.ZIP.  
  2562.  
  2563.  
  2564.         8.8 Charles Lazo's WAS       
  2565.  
  2566.         On  a  computer  with  no  expanded memory, you might want to use
  2567.         HIGHEMS3  to  provide  some  Expanded  Memory  for Charles Lazo's
  2568.         scroll-back  TSR, WAS.COM.  This utility saves lines of text that
  2569.         have  been  scrolled  off the top of the screen and allows you to
  2570.         pull  them  back down for review.  WAS is available from a number
  2571.         of BBS's, usually under the filename WAS062.ZIP.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2582.  
  2583.  
  2584.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              41
  2585.  
  2586.  
  2587.         8.9 Philip Gardner's DOSMAX       
  2588.  
  2589.         DOSMAX  is  a  set  of  utilities  that  compliment The Last Byte
  2590.         Memory  Manager  by moving all of the DOS "subsegments" (BUFFERS,
  2591.         FILES,  FCBS,  LASTDRIVE, STACKS, etc.), COMMAND.COM, and the DOS
  2592.         kernel  into  Upper  Memory  Blocks  provided by HIGHUMM.  Set up
  2593.         your CONFIG.SYS file as follows: 
  2594.  
  2595.              DOS=HIGH
  2596.              DEVICE=C:\DOSMAX\STOPMAX.SYS
  2597.              DEVICE=C:\TLBMM\LASTBYTE.SYS
  2598.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  2599.              DEVICE=C:\TLBMM\HIGHUMM.SYS /REPLACE
  2600.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOSMAX\DOSMAX.EXE /C:+ /P:-
  2601.              SHELL=C:\DOSMAX\SHELLMAX.COM C:\DOS\COMMAND.COM C:\DOS\ /E:512 /P
  2602.  
  2603.         If  you  wish,  you  can  eliminate  the  use  of  STOPMAX.SYS by
  2604.         appending the /I+ or /B+ option to the DOSMAX.EXE command line.  
  2605.  
  2606.         Using     the     full     pathname    of    DOSMAX.EXE    (i.e.,
  2607.         C:\DOSMAX\DOSMAX.EXE)  is very important.  The resident stub must
  2608.         be  able to exec DOSMAX.EXE at the proper time, and this requires
  2609.         the full path to DOSMAX.EXE.  
  2610.  
  2611.         The  latest  version  of  DOSMAX  may  be downloaded from the Key
  2612.         Software Products bulletin board.  
  2613.  
  2614.  
  2615.         8.9.1 Trashed Floppy Diskettes       
  2616.  
  2617.         Under  certain circumstances, the combination of TLBMM and DOSMAX
  2618.         can  cause  data  on  floppy  diskettes  to  be  trashed.  If you
  2619.         experience  this problem, it is probably because DOSMAX has moved
  2620.         the  DOS  "Work  Buffer"  into  a 128k region of the Upper Memory
  2621.         Area  (640k-1meg)  in  which a 16-bit adapter is installed.  (See
  2622.         the  discussion  about  DMA in the section on the RESTRICT option
  2623.         of LASTBYTE.SYS that appears earlier in this document.) 
  2624.  
  2625.         The  solution  is  to  simply  add  the  "/WKBUFFER=0"  option to
  2626.         DOSMAX: 
  2627.  
  2628.                 DEVICE=DOSMAX.EXE /P:- /WKBUFFER=0 
  2629.  
  2630.         This prevents DOSMAX from moving the work buffer into the UMA.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2642.  
  2643.  
  2644.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              42
  2645.  
  2646.  
  2647.                         APPENDIX 1 - HOW TO REACH US     
  2648.  
  2649.  
  2650.         The  Key  Software Products telephone (415-364-9847) is shared by
  2651.         our  BBS,  FAX,  and  voice  mail  answering system.  Approximate
  2652.         hours of operation are: 
  2653.  
  2654.                   Voice mail and FAX: 8am - 5pm PST (weekdays)
  2655.                  BBS system: 5pm - 8am PST (24 hrs on weekends)
  2656.            BBS Parameters: 1200/2400/9600/14400 baud (v.32bis/v.42bis)
  2657.                              8 data bits, No Parity
  2658.  
  2659.         If  your call is answered by the voice mail system, it can take a
  2660.         message   that will be automatically forwarded to someone who can
  2661.         return  your  call as soon as possible.  In addition, it offers a
  2662.         touch-tone driven menu of useful information about our product.  
  2663.  
  2664.         To send us a FAX, follow the following steps: 
  2665.  
  2666.              Step 1:  You'll  be  greeted  by  our Voice Mail system
  2667.                       which  will  prompt you to press 1 if you have
  2668.                       a touch-tone phone.  
  2669.  
  2670.              Step 2:  Press 1.  You'll then hear a menu that prompts
  2671.                       you to press 5 to send a FAX.  
  2672.  
  2673.              Step 3:  Press  5.  In a few seconds, you'll hear a FAX
  2674.                       tone; press start on your FAX machine.  
  2675.  
  2676.         That's  all  there  is to it.  Be sure to include your FAX number
  2677.         for  the  reply  which  will  be  sent  back to you in one or two
  2678.         days.  
  2679.  
  2680.         If  you have access to electronic mail, you can send us a message
  2681.         via any of the following: 
  2682.  
  2683.         On COMPUSERVE, send mail to:
  2684.  
  2685.                 >Internet:tech.support@ksp.com
  2686.  
  2687.         On PRODIGY, send mail to: VGDC59A
  2688.  
  2689.         On INTERNET, UUCP, or BITNET, send mail to:
  2690.  
  2691.                 tech.support@ksp.com
  2692.  
  2693.         On FIDONET, address mail to "UUCP" at nearest fidonet site which
  2694.         provides a gateway to Internet, such as 1:105/42.
  2695.  
  2696.                 1st line of message: To: tech.support@ksp.com
  2697.  
  2698.  
  2699.  
  2700.  
  2701.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2702.  
  2703.  
  2704.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              43
  2705.  
  2706.  
  2707.         On MCI,
  2708.  
  2709.                  At the "To:" prompt enter: TECH SUPPORT (EMS)
  2710.                 At the "EMS:" prompt enter: Internet
  2711.                 At the "Mbx:" prompt enter: tech.support@ksp.com
  2712.  
  2713.         On APPLELINK, send mail to:
  2714.  
  2715.                 tech.support@ksp.com@dasnet#
  2716.  
  2717.         On TELENET's Telemail Service:
  2718.  
  2719.                 Send to: [INTERMAIL/USCISI]TELEMAIL/USA
  2720.                 1st line of message: Forward: ARPA
  2721.                 2nd line of message: To: tech.support@ksp.com
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2762.  
  2763.  
  2764.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              44
  2765.  
  2766.  
  2767.                 APPENDIX 2 - GETTING UPDATES VIA THE INTERNET    
  2768.  
  2769.  
  2770.         The main distribution files are as follows: 
  2771.  
  2772.             TLB-T231.ZIP    Contains only CHIPSET.EXE and CHIPSET.DOC.
  2773.             TLB-W231.ZIP    Contains only WHATSNEW.DOC.
  2774.             TLB-V231.ZIP    The minimal set of files needed.
  2775.             TLB-A231.ZIP    Miscellaneous advanced utilities.
  2776.  
  2777.         These  files are available from the KSP BBS, either by calling in
  2778.         and  downloading,  or via e-mail using the "FTPMAIL" capabilities
  2779.         of  the BBS; I do NOT have "real" FTP capability in case you were
  2780.         wondering.  
  2781.  
  2782.         To  use  FTPMAIL,  you  must  send  a  message  addressed  to the
  2783.         Internet  address  ftpmail@ksp.com.   The message must contain an
  2784.         FTPMAIL  command entered as a single line of text, and it must be
  2785.         the  first  line  in  the  message. The FTPMAIL commands that are
  2786.         supported include: 
  2787.  
  2788.         Command: HELP tlbmm-l
  2789.         Purpose: Returns an text file with help information about FTPMAIL.
  2790.  
  2791.         Command: DIR tlbmm-l
  2792.         Purpose: Returns an e-mail message listing all of the file directories
  2793.                  on the BBS by number and description.
  2794.  
  2795.         Command: LIST tlbmm-l 1
  2796.         Purpose: Returns an e-mail message listing all of the files in
  2797.                  directory #1 of the BBS.
  2798.  
  2799.         Command: GET tlbmm-l TLB-W231.ZIP
  2800.         Purpose: Returns an e-mail message containing a uuencoded version of
  2801.                  the file TLB-W231.ZIP.  To extract the file, you must save
  2802.                  the message as a file on your system, edit out the e-mail
  2803.                  header at the beginning of the file, and then use a program
  2804.                  called UUDECODE (commonly available on Unix) to convert the
  2805.                  uuencoded version back to the original ZIP format, and then
  2806.                  (finally) use PKUNZIP to extract the contents of the file.
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2822.  
  2823.  
  2824.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              45
  2825.  
  2826.  
  2827.                       APPENDIX 3 - ACKNOWLEDGEMENTS        
  2828.  
  2829.  
  2830.         The  Last  Byte  Memory  Manager  wouldn't  exist without all the
  2831.         companies  that  manufacture  the  shadow  ram  memory controller
  2832.         chips,  and  who  have  provided techinical information on how to
  2833.         program  their  configuration registers.  If you know of a memory
  2834.         controller  chip  we  haven't included, please let us know and we
  2835.         will try to add it.  
  2836.  
  2837.         The  Last  Byte  Memory  Manager consists of almost a megabyte of
  2838.         source  code,  written  mostly in C with a sprinkling of assembly
  2839.         language,  and  compiled using version 3.1 of the DeSmet/C-Ware C
  2840.         compiler.   We  are grateful for the simplicity, flexibility, and
  2841.         speed  of this compiler, as well as the generous support provided
  2842.         by Joel and Susan Farley of C-Ware Corporation.  
  2843.  
  2844.         The  Last Byte Memory Manager could not have been created without
  2845.         the  gracious  support  of  many  people.   We  wish to thank the
  2846.         following  individuals  who  helped  to  test  beta  versions  or
  2847.         offered  useful  suggestions  for  new  features: Ron Cohen, J.B.
  2848.         Compton,  David  Durgee,  Philip  Gardner,  Mike  Hagerty,  Scott
  2849.         Jordahl,  Alan  Lambert,  Rob  Nee,  Kevin  Parris,  Dan Proctor,
  2850.         Graham  Robertson,  Ken  Sanquist,  Tony  Sheehan, Peter Summers,
  2851.         Steve  Hodsdon, Anthony Cox, My Phung, Martin Beckmann, and Prof.
  2852.         Timo Salmi (of the University of Vaasa, Finland).  
  2853.  
  2854.         Thank's  also  go to Tom Rawson of J. P. Software for providing a
  2855.         copy  of  4DOS, to Sue Nageotte of Digital Research for providing
  2856.         a  copy  of  DR  DOS,  to  Philip Gardner for providing a copy of
  2857.         DOSMAX,  and  to  Pat  Gelsinger of Intel Corporation for lending
  2858.         his  intimate  knowledge  of  the  80x86  instruction  sets.  And
  2859.         finally,  a  special  thanks  to  Serge  Caron,  Roger Cross, and
  2860.         Philip   Gardner   for   their   suggestions,  technical  advice,
  2861.         patience, and friendship.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2882.  
  2883.  
  2884.         Sep 14, 1994    THE LAST BYTE MEMORY MANAGER (tm)              46
  2885.  
  2886.  
  2887.                       APPENDIX 4 - LIMITED WARRANTY       
  2888.  
  2889.  
  2890.         This  software  is provided 'as is' without warranty of any kind,
  2891.         either  expressed  or  implied, including, but not limited to the
  2892.         implied   warranties   of   merchantability  and  fitness  for  a
  2893.         particular  purpose.   The  entire  risk  as  to  the quality and
  2894.         performance of the program is with you.  
  2895.  
  2896.         Some  states do not allow the exclusion of implied warranties, so
  2897.         the  above  exclusions may not apply to you.  This warranty gives
  2898.         you  specific  legal  rights  and  you may also have other rights
  2899.         which vary from state to state.  
  2900.  
  2901.         Key  Software  Products  has  taken  due  care  in  preparing the
  2902.         documentation  and  software  included  in  The  Last Byte Memory
  2903.         Manager   to   ascertain  their  correctness  and  effectiveness.
  2904.         However,  Key  Software  Products does not warrant that operation
  2905.         of  this  software  will  be  uninterrupted or error free.  In no
  2906.         event  shall  Key  Software  Products be liable for incidental or
  2907.         consequential  damages  in  connection with or arising out of the
  2908.         furnishing, performance, or use of this software.  
  2909.  
  2910.  
  2911.                                      LICENSE
  2912.  
  2913.         You  MAY  use  this software on any computer or computers in your
  2914.         possession, but on no more than one computer at any given time.  
  2915.  
  2916.         You  MAY  copy this software into any machine readable or printed
  2917.         form  for  backup or modification purposes in support of your use
  2918.         of the software.  
  2919.  
  2920.         You  MAY  distribute  the original unmodified, unlicensed version
  2921.         of  this  software,  but you may not charge a fee exceeding $5.00
  2922.         to  cover  the  cost of duplicating, shipping, and handling.  You
  2923.         may NOT distribute a licensed version of this software.  
  2924.  
  2925.         You  may  NOT  use,  copy, modify, sublicense, assign or transfer
  2926.         this  software  and  its license, or any copy or modification, in
  2927.         whole  or  in  part,  except  as  expressly  provided for in this
  2928.         license.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  2942.  
  2943.